08:01:24 <Daisy> #startmeeting OpenStack I18n Meeting 08:01:25 <openstack> Meeting started Thu Jun 5 08:01:24 2014 UTC and is due to finish in 60 minutes. The chair is Daisy. Information about MeetBot at http://wiki.debian.org/MeetBot. 08:01:26 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 08:01:28 <openstack> The meeting name has been set to 'openstack_i18n_meeting' 08:01:39 <Daisy> Good morning/afternoon, everyone. 08:01:48 <Daisy> It has been a long time since our last meeting. 08:02:12 <Fdot> Good morning/afternoon everyone 08:02:38 <ygbo> Hi all 08:02:43 <ujuc> Hi!!!! ;) 08:02:43 <epico> hi 08:02:46 <rajeshr> hi 08:02:53 <Daisy> #topic #startmeeting OpenStack I18n Meeting 08:02:58 <Daisy> Sorry wrong 08:03:07 <Daisy> #topic Atlanta summit report from Daisy 08:03:17 <ujuc> :) 08:03:35 <Daisy> I was in the summit this time. And there were two sessions related with translation very much. 08:03:53 <Daisy> Message I18n: https://etherpad.openstack.org/p/juno-cross-project-i18n 08:04:19 <Daisy> Openstack developers were there and talked about messages I18n in this session. 08:04:28 <Daisy> Oslo team is working on a new oslo.i18n library, which is designed to be ready in the first milestone of Juno. 08:04:48 <Daisy> After that, they would find projects to adopt the new lib. 08:05:01 <Daisy> When all of these works ready, we will have separated messages, user facing error messages, API response messages, exception messages, and log messages. 08:05:24 <Daisy> different messages in different pot files. 08:05:41 <Daisy> Then we are able to translate the user facing messages if we want. 08:06:38 <Daisy> Whether to translate messages, and what to translated could be the decision of a translation team. 08:06:48 <Daisy> Different country might have different situation. 08:07:36 <Daisy> I plan to have Chinese translations for API response messages and user facing messages. 08:07:50 <Daisy> You could make the decision of your own. 08:07:56 <Daisy> Any questions? 08:08:45 <Fdot> not for me 08:09:15 <ygbo> Just one thing about API error messages 08:09:16 <Daisy> ok. Fdot, do you have needs to translate these messages ? 08:09:32 <Daisy> ygbo, please. 08:09:42 <Fdot> we have to think about this 08:09:44 <ygbo> The "one thing" is about bug/error messages 08:10:14 <Fdot> but i don't think we are going to translate API messages in french 08:10:27 <ygbo> If these messages are translated, the report is ot understandable if it does not have an error code (for the developper) 08:10:39 <Daisy> :) 08:10:43 <Fdot> for someone using the api it is easier to find informations about an error code or message if it is in english 08:10:53 <Daisy> Good question, ygbo. 08:10:57 <Fdot> he will find more informations and records on google ;) 08:11:08 <Daisy> It's a common concern. We will have dev team to answer it. 08:11:15 <ygbo> Fdot: maybe in French, but even us French will fix bugs reported maybe by an error message in Hindi 08:12:14 <Daisy> As to API response message, in Horizon, sometimes there would be error report when you do an action, like: Error: instance XXXX failed to be deleted. 08:12:28 <ygbo> I agree that a translated message is easier for the user, but for the one fixing the bug, if there is an error code he can link to the message without translation to fix the bug. 08:12:29 <Daisy> "instance XXX failed to be deleted" is a API response message. 08:12:30 <Fdot> ygbo: sometimes it is easier for investigating to have a comon error referencial into one language ;) 08:12:39 <Daisy> Now these kind of messages are not translated in Horizon. 08:13:23 <Fdot> but it is has to be translate into horizon 08:13:43 <Daisy> Horizon displayed the back-end returned messages in their web UI. 08:14:04 <Daisy> Simply display. 08:14:17 <epico> ygbo, I just thinks a few error codes are more maintainable for developers... 08:14:44 <epico> Daisy, how about to return English message and translate message both? 08:14:58 <Daisy> epico: it could be a solution. 08:15:13 <epico> maybe current oslo.i18n supports these both messages. 08:15:28 <epico> as they can store both log messages. :) 08:15:30 <Daisy> Now the solution is: Accepted Language in HTTP header is used to mark the required language for API response message. 08:15:40 <epico> Daisy, yeah 08:16:40 <Daisy> I will pass our feedback to the dev team and see their response. 08:17:00 <epico> great! 08:17:18 <Daisy> Next session is "Translation tool discussion" https://etherpad.openstack.org/p/translation-platform-discussion 08:17:27 <ygbo> If an error says "Erreur 1234, ceci a �chou�", even if you don't understand Frenchn the developper can grep for the rror 1234 easily :-) 08:18:15 <epico> ygbo, I just hopes not too many error codes are defined... 08:18:36 <Fdot> epico +1 08:18:44 <ygbo> epico: True :-) 08:18:56 <ujuc> :) epico +1 08:18:59 <epico> :-) 08:19:32 <Daisy> Transifex is not keeping opening. We need to pay for the support from Transifex team if we want to get better support, or else, we only have to wait for a long time. 08:20:19 <Daisy> So I was asked by the OpenStack Technical Lead team to evaluate several "open source" translation tools . 08:21:03 <Daisy> I have contacted with Zanata and Pootle. Zanata dev team give great support to me. 08:21:28 <Daisy> Zanata dev team gave a demo to us in April. 08:21:55 <Daisy> They even went to Atlanta to attend this session discussion. 08:22:15 <Daisy> So In the summit, we decided to set up a Zanata demo website. Infra team will work together with Zanata dev team to implement it. 08:22:34 <Daisy> After the demo website is ready, we will try some small projects there. 08:22:52 <Daisy> Zanata dev team is open for OpenStack community's input, both in the contributors statistic feature and the UI improvements. 08:24:07 <Daisy> A bug is used to track the contributor statistic feature: https://bugzilla.redhat.com/show_bug.cgi?id=1092193. 08:24:09 <uvirtbot> Daisy: Error: Could not parse XML returned by bugzilla.redhat.com: HTTP Error 404: Not Found 08:24:36 <Daisy> You could input ideas if you have interested. 08:24:44 <Daisy> Any questions or comments? 08:25:35 <ygbo> With Fdot we noticed something on Transifex: The Icehouse Translations are not on Juno branch... And translators would like to have what they already did. So were the translations merged only in the Icehouse branch and not in "master"? If so it would be good after a release to have them in the master branch too for the "continuation". This is more a translation workflow issue than Transifex itself :-) 08:26:50 <Daisy> In my mind, what we have translated should be in the master branch. 08:27:16 <Daisy> I don't know why you said they were not, ygbo. 08:27:31 <Daisy> Which project? 08:28:36 <ygbo> Daisy: well Fdot can explain better, for my part, on Horizon in cloudwatt we stick to "master" and I have to take the pot files from Transifex-Icehouse (and add the missing which are master dependent), because "master" lacks a lot of translations. 08:29:00 <Daisy> I could check it offline with Horizon team. 08:29:10 <Daisy> I don't think it should happen. 08:30:15 <Daisy> #topic: Juno plans 08:30:19 <Fdot> Daisy if i make a diff 08:30:42 <Fdot> between the po file from icehouse and the po file available for juno 08:30:56 <Fdot> i don't find some translation we have made for icehous 08:31:01 <Fdot> icehouse 08:31:33 <Daisy> So Fdot, some translations you made for icehouse are not in the master branch. Not all, right? 08:31:40 <Fdot> yes 08:31:41 <Daisy> Just some translations disappeared? 08:32:02 <Fdot> some has disappeared and some are differents 08:32:12 <Fdot> we have made corrections for typos 08:32:15 <Daisy> OK. I could check it offline. If not all and only a few, that might be a manually error. 08:32:22 <Fdot> and don't find the corrections into juno 08:32:27 <Fdot> ok 08:32:33 <Fdot> other point about this 08:32:50 <Daisy> Because while master branch switch to icehouse branch, amotoki do it manually. 08:33:14 <Fdot> all revision work is lost between icehouse and juno which is sad :/ 08:33:32 <Daisy> So there might be something wrong during this "switch" 08:33:42 <Fdot> ok :) 08:33:46 <Daisy> Yes, I agree. I will do a check. 08:33:57 <Daisy> So come back to Juno plans. 08:34:03 <Fdot> thanks a lot :) 08:34:25 <Daisy> In Juno, before next summit in Pair, :), I hope to have as many as non-English website on-line. 08:34:57 <Daisy> Especially French, Fdot. 08:35:24 <Daisy> I know you have done a lot of translations. I know some of them are not in Transifex, right? 08:35:44 <Daisy> Now we have French doc website and Spanish doc website. 08:35:53 <Fdot> in french we have 2 subjects :) 08:36:07 <Daisy> http://docs.openstack.org/fr/ 08:36:43 <Daisy> Oh, not Spanish, but Japanese, French and German. 08:37:07 <Fdot> 1 the translation we have made for havana just before the complete refactoring of the documentation I still don't find a solution for upstream it and since we have this work the documentation has changed a lot 08:37:12 <Daisy> ujuc: let's try to have Korean document website on-line in Juno lifecycle. 08:37:40 <Daisy> What's your subjects, Fdot? 08:37:44 <Fdot> 2 - i am currently working working on translation of a lot of things about the APIs for Cloudwatt everything will be upstream 08:37:56 <Daisy> Great ! 08:38:07 <Fdot> sorry not 2 subjects just 2 points :) 08:38:20 <Daisy> Fdot, as to #1, I wonder if we could use PDF file or HTML file directly. 08:38:51 <ujuc> hub 08:38:53 <Daisy> I know it's hard to import to Transifex. We could use HTML directly. Just publish them to the website. 08:39:00 <ujuc> :)) yap 08:39:34 <Daisy> ujuc: when you have done any documents 100%, I will help you to have the Korean doc website. 08:39:34 <Fdot> daisy the translation was made on the grizzly base. I am not sure it is very relevant 08:39:41 <Daisy> OK. 08:39:44 <Daisy> That's bad. 08:39:49 <ujuc> Ok 08:39:54 <Daisy> Any useful documents? Fdot? 08:40:09 <Fdot> but i have to find a way to extract all the part which didn't move from grizzly 08:40:33 <Fdot> the ideo should be to find a way to upstream the translation on the old grizzly po file 08:40:50 <Fdot> and them making a merge with the master file 08:40:56 <Fdot> we will lost some parts 08:41:01 <Fdot> but win some others 08:41:17 <Daisy> Not sure which tools could help, Fdot. 08:41:27 <Fdot> daisy me too :( 08:41:42 <Daisy> Let's start the discussion in the mailing list to see if we could get good suggestions. 08:41:43 <Fdot> the amazon mechanic turk :D 08:42:08 <Fdot> that's a goot idea i am going to prepare an email about this 08:42:12 <Daisy> Next work I'm going to do is automation globalization test. 08:42:30 <Daisy> I got strong requirements about globalization test during the summit. 08:42:41 <Daisy> Globalization test will find bugs and errors occurring in Non-English environment. 08:42:44 <Fdot> #action fdot is going to sen an e-mail to translation mailing list about his problem to upstream a french translation 08:43:11 <Daisy> These kind of errors and bugs won't occur in English env. 08:43:13 <Daisy> The basic idea is to enhance Tempest test to feed pseudo translations. 08:43:48 <amotoki> hi, what is the problem for icehouse translation above. my nams is referred above.. let me clarify after the current topic finishes. 08:44:58 <Daisy> amotoki, French team found some of their changes to Horizon translation in Icehouse doesn't appear in the current master branch. 08:45:26 <Daisy> amotoki: I'm going to move to next topic. 08:46:02 <Daisy> #topic: Horizon translatable strings rules 08:46:02 <amotoki> Daisy: icehouse horizon translation is not synced with the master branch. that is the reason. 08:46:16 <Daisy> https://wiki.openstack.org/wiki/I18n/TranslatableStrings 08:46:34 <Fdot> amotoki this is what we were thinking :) 08:46:38 <Daisy> ygbo: are you there? 08:46:45 <Fdot> thanks for the information 08:46:54 <ygbo> Daisy: yep :-) 08:46:59 <Daisy> ygbo: I have read the wiki page you write. 08:47:31 <Daisy> It's a long page, including many information. And thank you very much for your effort. 08:47:50 <Daisy> I have some thoughts. 08:48:26 <ygbo> Sure, let me know :-) 08:48:34 <Daisy> First of all, I think we could find a way to easy review and comment, other than wiki page. :) 08:49:16 <Daisy> Wiki page is hard to input comments. 08:49:34 <tmazur> Hi all! I have some questions about the wiki page you are talking about. 08:50:11 <Daisy> tmazur: please say. The author, ygbo, is there. 08:50:19 <tmazur> It appears that we start using npgettext_lazy for some translations. 08:50:45 <tmazur> I mean this patch set: https://review.openstack.org/#/c/91338 08:51:13 <ygbo> tmazur: that's my patch indeed :-) 08:51:19 <tmazur> However there is nothing about npgettext_lazy at wiki 08:51:46 <tmazur> ygbo, sure :) I came here because you called me :) 08:51:57 <Daisy> I wonder if npgettext_lazy is a customized function or not. 08:51:57 <ygbo> tmazur: *pgettext* is about contextual markers and pluralization :-) 08:52:17 <amotoki> re: npgettext_lazy it doesn't work with django older than 1.6. 08:52:19 <ygbo> Daisy: npgettext_lazy is from django 08:52:30 <ygbo> ameade: it does work :-) 08:52:34 <Daisy> ok. ygbo. 08:52:52 <amotoki> horizon team still supports django 1.4 and 1.5. This is the reason we don't use npgettext_lazy so far. 08:53:11 <tmazur> ygbo, yes. My point is: if we are going to use npgettext_lazy, we should add a few lines to wiki page 08:53:32 <ygbo> s/ameade/amatoki/ (sorry) 08:53:53 <ygbo> amotoki: it does work see my comment https://review.openstack.org/#/c/91338/12/tox.ini 08:55:17 <amotoki> ygbo: does it work on djnago 1.5 too? when i tested a year ago, it doesn't work as expectedc. 08:55:32 <amotoki> *expected. 08:55:55 <amotoki> i know it works on django 1.6. 08:56:16 <Daisy> ygbo: do you think if we should include apostrophe issue in this page? I know, apostrophe may cause unexpected errors in French. 08:57:01 <ygbo> amotoki: waht does not work is https://docs.djangoproject.com/en/1.6/topics/i18n/translation/#lazy-translations-and-plural but this works https://docs.djangoproject.com/en/1.4/topics/i18n/translation/#working-with-lazy-translation-objects 08:57:48 <ygbo> amotoki: "passing a key name instead of an integer as the number argument" is what doesn't work in 1.4/1.5 08:57:55 <ygbo> but I didn't use this 08:58:07 <ygbo> see my comment here: https://review.openstack.org/#/c/91338/11/horizon/tables/actions.py 08:58:50 <ygbo> amotoki: so as long as we use npgettext_lazy as it is documented in Django 1.4 there is no issue 08:59:56 <amotoki> ygbo: i think npgettext() is documenetd in django 1.4 but npgettext_lazy() is new in django 1.6. am i missing something? 09:00:44 <ygbo> amotoki: https://docs.djangoproject.com/en/1.4/topics/i18n/translation/#working-with-lazy-translation-objects 09:01:49 <ygbo> amotoki: the Jenkins would have failed during the django 1.4 tests 09:03:30 <amotoki> ygbo: doesn't the page describe only lazy translations. older django has definitions for all lazy variants of ugettext, but some of thme does not work actually. It only returns original strings. 09:04:00 <amotoki> ygbo: anyway let me check later. 09:05:23 <Daisy> ygbo: We have overrun the meeting 09:05:48 <ygbo> Daisy: oops, indeed 09:06:22 <Daisy> ygbo: how many people have give you feedbacks to the wiki page? 09:06:37 <Daisy> Did Horizon developers know about it? 09:07:02 <amotoki> i think only a few of horizon developers know the page. 09:07:06 <ygbo> Daisy: for the moment... not many peaople 09:07:22 <amotoki> perhaps jpich, tmazur and i. 09:07:29 <Daisy> I'm not the expert of Django 09:07:38 <Daisy> So I might not help much. 09:08:22 <amotoki> apart from the detail, we need to clarify the basic policy first, then migrate to better one and apply it to the review policy. 09:08:34 <ygbo> amotoki: https://github.com/django/django/blob/stable/1.4.x/django/utils/translation/__init__.py 09:08:45 <tmazur> amotoki, agreed 09:08:54 <ygbo> npgettext_lazy = lazy(npgettext, unicode) 09:08:59 <Daisy> I suggest we use a more collaborative way to improve the wiki page, and let more people input their comments. 09:09:02 <ygbo> line 102 09:09:52 <epico> amotoki, +1 09:10:01 <ygbo> Daisy: maybe an etherpad page? 09:10:08 <Daisy> Good. 09:10:20 <Daisy> Then I can easily input my questions there. 09:10:41 <Daisy> I'm not the expert, so I have a lot of questions. :) 09:11:28 <Daisy> #action ygbo move the wiki page to Etherpad 09:12:01 <Daisy> #action Daisy to pass the feedback about new oslo.I18n to Oslo dev team. 09:12:09 <Daisy> I will close the meeting now. 09:12:16 <Daisy> You could continue the discussion here. 09:12:20 <Daisy> #endmeeting