Bug 5246

Summary: Adding uim.desktop.in.in file
Product: UIM Reporter: Daichi Kawahata <daichi.k>
Component: OtherAssignee: uim-bugs
Status: RESOLVED FIXED QA Contact:
Severity: enhancement    
Priority: high CC: mover, yamaken
Version: unspecified   
Hardware: All   
OS: All   
Whiteboard:
i915 platform: i915 features:
Attachments: Suggested patch
Japanese translations for UIM 1.0.0
Japanese translations ver. 2
Japanese translations ver. 2
Patch for "ver 2"
Japanese translations ver. 3 (semi-final)
Reference patch for the reversion

Description Daichi Kawahata 2005-12-05 19:45:19 UTC
With an attached patch and PO file, uim.desktop will be generated
via intltool.
Comment 1 Daichi Kawahata 2005-12-05 19:48:54 UTC
Created attachment 3996 [details] [review]
Suggested patch

In po/POTFILES.in, I've listed files only which contains actual
translatable strings, added Comment string in uim.desktop.in.in,
but it should be revised by the author.
Comment 2 Daichi Kawahata 2005-12-05 19:57:25 UTC
Created attachment 3997 [details]
Japanese translations for UIM 1.0.0

And Japanese translation file (current status 787/804),
in which almost of all strings are translated except
Byeoru related strings and strings have "?" mark
(I was not sure whether those strings were ready to be
translated anyway).

Probably, there might be some incompatibilities, feel free
to adjust them or point them out to me.
Comment 3 Etsushi Kato 2005-12-05 21:22:40 UTC
Thanks for your suggestion and the patch.
It's really helpful such a careful patch for the translation things.

I'll check this later and will commit.
Comment 4 Etsushi Kato 2005-12-05 22:00:18 UTC
Also big thanks for your improvement on ja.po.

I have some comment on it.

  We use 'uim' not 'UIM'.
  'toggle' doesn't mean 'switch'
  'advance' doesn't mean 'for expert'.
  ...

YamaKen, do you have any comment about the Japanese translations (especially on
the technical term side)?
Comment 5 Daichi Kawahata 2005-12-05 22:23:05 UTC
Created attachment 3999 [details]
Japanese translations ver. 2

Okay fixed, make sure if FIXME marked strings really need
to be revised, and from what I've seen certain amount of
strings in Byeoru seems just transliterations, which may
require asking English translation to the author of that
module.

BTW, just out of curiosity, as far as I know, isn't uim
abbreviation of Universal Input Method?
Comment 6 Daichi Kawahata 2005-12-05 22:28:24 UTC
Created attachment 4000 [details]
Japanese translations ver. 2

Oops, still UIMs there were...
Comment 7 Etsushi Kato 2005-12-06 01:37:53 UTC
I revised "Japanese translations ver.2" and here is the patch against the file.
I'll commit "ver2" with my patch applied.

YamaKen, please check when you have a free time.
Comment 8 Etsushi Kato 2005-12-06 01:42:16 UTC
Created attachment 4003 [details]
Patch for "ver 2"
Comment 9 Daichi Kawahata 2005-12-06 08:35:13 UTC
Created attachment 4006 [details]
Japanese translations ver. 3 (semi-final)

No, I just found that my local repository (svn://svn.utyuuzin.net/uim/trunk)
didn't get sync'd with yours at all, I must make a mess against previous
translations. Therefore I've reverted translations at the most part so that
only new strings are translated by me.

YamaKen, sorry for discarding your credit and translations, which have
certain advantages than mine. Now translation comes back in your hand, feel
free to re-modify them (current status 796/804 and strings with FIXME really
require to be fixed), especially Chinese related strings (e.g. I put Kanji
at "Pinyin", different translation in "Traditional").

As for the translation style in GNOME (helper/GNOME_UimApplet.server.in.in),
the words in single sentence need to be punctuated by middle dot for the
sake of their translation consistency. Also I've put a space in between
ASCII character and Japanese, if that was not your style, tell me so.

PS. As I couldn't update my local SVN repository (I got an error), I have to
upload entire PO file again instead of patch, sorry in advance for your
inconvenience.
Comment 10 Daichi Kawahata 2005-12-06 08:40:05 UTC
Created attachment 4007 [details] [review]
Reference patch for the reversion

I hope translation gets consistency again and improved somehow.
Comment 11 YamaKen 2005-12-06 10:45:58 UTC
Daichi, thank you for the contribution. It has significantly improved our
translation quality and consistency.

I have not looked at your last work yet because another important problem has
appeared.

The problem is that some message-ID is conflicting, such as "Hebrew". The ID is
appeared as language name in libuim, and as Unicode character category name in
chardict-qt. They should be translated to different Japanese message. I think
that we should separate po files for each libuim, bridges and helper
applications as proper responsibility separation. It also resolves the ID
confliction. Etsushi, how do you think about?

Comment 12 Etsushi Kato 2005-12-06 16:35:41 UTC
>The problem is that some message-ID is conflicting, such as "Hebrew". The ID is
>appeared as language name in libuim, and as Unicode character category name in
>chardict-qt. They should be translated to different Japanese message. I think
>that we should separate po files for each libuim, bridges and helper
>applications as proper responsibility separation. It also resolves the ID
>confliction. Etsushi, how do you think about?

OK. I'll investigate how to deal with multiple po.
I think that it isn't so easy to setup po file corresponding to each application
with our current directory structure.  But creating po file with each directory
will be much easier.
Comment 13 Etsushi Kato 2005-12-06 17:22:36 UTC
>OK. I'll investigate how to deal with multiple po.
>I think that it isn't so easy to setup po file corresponding to each application
>with our current directory structure.  But creating po file with each directory
>will be much easier.

I now understand above strategy doesn't work well, since any application using
libuim and its own directory's po file need to switch domain names appropriately.

So for the workaround of translation problem between uim-chardict-qt and libuim
in 1.0.0, I'm going to create qt/chardict and use qt/chardict/po only for
qt-chardict, since qt-chardict doesn't use libuim at all.
Comment 14 Daichi Kawahata 2005-12-06 18:57:03 UTC
How about g_strip_context() and N_("language_code|Hebrew")?
Because of GLib function, uim/iso-639-1.def has to be the place
to apply this workaround, also macro definition may require
somewhere.

I'm not sure if Qt has similar function, but if Qt provides
such function, qt/chardict-unicodeviewwidget.cpp is the best
place to put the translation context label, like
UnicodeBlock( _( "character_name|Hebrew" ), in my opinion.

Using different gettext domain might be the another path to
resolve the problem.
Comment 15 Daichi Kawahata 2005-12-06 19:29:24 UTC
> also macro definition may require somewhere.

It meant NC_("language_code|Hebrew"), macro C (Context or Conflict) or
the like, as well as UnicodeBlock( C_( "character_name|Hebrew" ), the
former requires noop+context_strip macro/function, the latter requires
the macro/function in C++, hmm...
Comment 16 Etsushi Kato 2005-12-06 19:44:59 UTC
Thank for the information.  I didn't know g_strip_context().

Sadly we don't use glib with libuim and I couldn't find any equivalence in Qt
and/or gettext.  But adding g_strip_context() equivalent mechanisms in libuim
(handling 'Q_') seems to be easy and work fine for this situation.  I'll test later.
Comment 17 Etsushi Kato 2005-12-06 21:27:14 UTC
I've tested both approach, creating qt/chardict/ and use its own domain for
uim-chardict-qt, and add uim_pvt_strip_context() and use Q_ for it as in
g_strip_context() in glib.

With Q_ approach, it is impossible to use this in uim/iso-639-1.def since
uim-util.c uses it as a static table.  But of course it works fine with
qt/chardict-unicodeviewwidget.cpp as Q_( "charactor_name|Hebrew" ).

YamaKen, which way do you prefer to use?
Comment 18 YamaKen 2005-12-06 21:44:47 UTC
> Using different gettext domain might be the another path to
> resolve the problem.

It's the proper way I supposed. But applying it to all libuim/bridges/apps is
not required for now. Separating the qt-chardict is sufficient for uim 1.0.

According to my past Qt programming experience, Qt provides its own
gettext-equivalent facility. tr() for '_', QT_TR_NOOP() for 'N_', *.ts for *.po,
and *.qm for *.mo. It may easily be supported by build scripts and I think that
Qt apps should use it instead of gettext. It can also automatically separate the
messages. Kazuki, how much work does it need?
Comment 19 YamaKen 2005-12-06 21:53:00 UTC
> I've tested both approach, creating qt/chardict/ and use its own domain for
> uim-chardict-qt, and add uim_pvt_strip_context() and use Q_ for it as in
> g_strip_context() in glib.

Former way is preferable. Thank you for the work.

Here is current precedence.

1. comment #18 (Qt's own gettext-equivalent facility)
2. the former way
3. complete separation for each uimlib, bridges, helper apps
Comment 20 Etsushi Kato 2005-12-07 14:55:26 UTC
> Here is current precedence.
> 
> 1. comment #18 (Qt's own gettext-equivalent facility)
> 2. the former way
> 3. complete separation for each uimlib, bridges, helper apps

OK.  Since there is no response from kazuki yet and 1. (using Qt linguist)
requires some changes in build process, I'll take 2. (using another gettext
domain for uim-chardict-qt) for uim-1.0 series.
Comment 21 Kazuki Ohta 2005-12-08 16:33:09 UTC
Execuse me for my late response. And don't know further information about Qt     
i18n issue, I always use KDE's gettext system to use gettext facility.     
    
I saw the Qt document and I've found qtlingust    
(http://doc.trolltech.com/3.3/linguist-manual.html) is the very tool for translation    
tool of Qt. And as Etsushi already suggests, using qtlingust requires build process. 
Comment 22 Etsushi Kato 2005-12-08 19:45:26 UTC
OK change resolution to FIXED.  Now uim-chardict-qt uses it own domain, and the
semi-final patch has been integrated to the repository and revised by YamaKen.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.