00:00:38 <Daisy> #startmeeting OpenStack I18n Meeting 00:00:39 <openstack> Meeting started Thu Oct 17 00:00:38 2013 UTC and is due to finish in 60 minutes. The chair is Daisy. Information about MeetBot at http://wiki.debian.org/MeetBot. 00:00:40 <openstack> Useful Commands: #action #agreed #help #info #idea #link #topic #startvote. 00:00:42 <openstack> The meeting name has been set to 'openstack_i18n_meeting' 00:00:51 <Daisy> Welcome to join ! 00:01:00 <Daisy> We haven't been met for a month. 00:01:13 <Daisy> But we keep contaction through email. 00:01:26 <Daisy> #topic Summary of Horizon translation 00:01:45 <Daisy> We did a wonderful job in Horizon translation. 00:01:53 <Daisy> We have 12 languages 100% translated. 00:01:59 <Daisy> That's a very good result. 00:02:14 <Daisy> Many thanks to these translation teams. 00:02:27 <gabrielcw> great! 00:02:32 <Daisy> The translations have been merged and will be shipped with Havana release. 00:02:58 <Daisy> I have a question. 00:03:16 <Daisy> How do you hope our translators being recoginzed? 00:03:51 <Daisy> I mean, how to recognize these translators? 00:03:56 <gabrielcw> Will the name appear somewhere in the release? 00:04:21 <Daisy> The name will be shipped with the po file, that's true. 00:04:34 <Daisy> But I don't know how many people will look into po files. 00:04:39 <gabrielcw> right 00:05:14 <Daisy> So maybe I can ask how developers being recoginzed, and our translators can be recongized in the same way. 00:05:25 <Daisy> First of all, we need to have a list of translators. 00:05:31 <Daisy> A name list of translators. 00:05:49 <Daisy> I don't know how easily we can get the name list from Transifex. 00:06:00 <gabrielcw> we have no stats, so it`s kind of hard to know who really works 00:06:14 <Daisy> correct, gabrielcw 00:06:30 <dylan> We could make some statistics just like the code contributors do, but need Transifex support 00:06:36 <gabrielcw> Well but if one is involved, and we ask the coordinators, we can get the names then 00:06:55 <gabrielcw> the coordinators should know I guess 00:07:03 <Daisy> I think so too. 00:07:10 <Daisy> so action 00:07:31 <Daisy> #action Daisy to get the translators name list and get a way to recongize them 00:07:58 <Daisy> ok. we move to next topic 00:08:08 <Daisy> #topic TODO items for the next 00:08:23 <Daisy> Before starting, here is a question. 00:08:29 <Daisy> How can we track the items we plan to do? 00:08:36 <Daisy> Blueprint in Transifex? 00:08:47 <gabrielcw> is there such thing? 00:08:53 <gabrielcw> in transifex? 00:08:55 <Daisy> No, 00:09:00 <Daisy> sorry, in Launchpad. 00:09:09 <gabrielcw> oh, right ;) 00:09:27 <Daisy> https://launchpad.net/openstack-i18n 00:09:35 <Daisy> we have this project in launchpad. 00:09:52 <Daisy> so I think we can use the blue print in this project to track the things we want to do. 00:09:56 <dylan> That's nice 00:10:13 <ujuc> +1 00:10:14 <ujuc> :) 00:10:21 <gabrielcw> agree 00:10:26 <Daisy> Thanks, ujuc and dylan 00:10:49 <Daisy> #info Action item 1: build up the translation infrastructure 00:11:18 <Daisy> I hope to have a good translation infrastructure to support our translators' work. 00:11:48 <Daisy> Including a well design UI, good integration with the development team and the infrastructure team, a well designed progress. 00:12:03 <Daisy> process, I mean, a good release process. 00:12:05 <gabrielcw> maybe we could track with the lanchpad bugs/tasks 00:12:28 <gabrielcw> *launchpad 00:12:33 <Daisy> That's an idea, gabrielcw 00:13:14 <Daisy> Now we are using Transifex. 00:13:34 <Daisy> yet I think some of you may know that Transifex closed its source. 00:14:00 <Daisy> Some requests come from OpenStack community and CI team to evaluate other translation tools. 00:14:08 <Daisy> Like pootle 00:14:45 <Daisy> Actually, after Horzion translation, I began to like Transfix now. 00:15:13 <gabrielcw> I think its good to use, but lacks of support 00:15:21 <Daisy> But if Transifex won't support statistics , we will not be able to choose it. 00:15:38 <gabrielcw> and we will not have the stats, only in the paid version 00:15:46 <Daisy> Right. 00:15:49 <gabrielcw> yeah, Daisy 00:16:06 <Daisy> The stats is very important for a open source community. 00:16:14 <dylan> Right 00:16:33 <dylan> That's the problem. 00:16:43 <Daisy> So let's start from the requirements to translation tools. 00:17:04 <Daisy> Our requirements to translation tools, and then we find out if there is suitalble tools support. 00:17:34 <Daisy> I hope to find somebody else to lead this discussion in our mailing list. 00:17:46 <Daisy> Who want to do that? 00:18:27 <gabrielcw> maybe someone who knows more the existing tools 00:18:28 <Daisy> if nobody, I can do. 00:18:40 <gabrielcw> who setup the pootle test server? 00:18:53 <Daisy> I think a guy from CI team. 00:19:03 <gabrielcw> I know only tx, so I won`t be of much help 00:19:13 <Daisy> hehe. ok. I can. 00:19:37 <Daisy> #action Daisy to start the discussion in mailing list about requirements to translation tools. 00:20:52 <Daisy> After translation tool is selected, we need the tool to integrate with openstack development infrastructure. 00:21:16 <Daisy> I mean, something like the automatic syncronization between git and transifex 00:21:43 <gabrielcw> that's important 00:21:44 <Daisy> Now there are automation scripts to push and pull the translations from Transifex to Github for some projects, not all. 00:21:55 <Daisy> I remember somebody has said that Horzion development team don't like the daily update, there is no automation scripts for Horzion. 00:22:08 <Daisy> So that Akihiro Motoki made several manually translation update in Horizon release. 00:22:39 <ujuc> so .. not translation tool.... 00:22:40 <ujuc> http://www.penflip.com/ 00:22:46 <ujuc> that ... 00:22:54 <Daisy> What is penflip? 00:23:03 <ujuc> git like doc 00:23:12 <ujuc> document tool. 00:23:20 <ujuc> github :);; 00:23:22 <Daisy> how can it help our translation? 00:24:17 <dylan> git-like documentation tool? 00:24:25 <ujuc> yes .. 00:25:14 <Daisy> I'm not clear how it is helpful for us, ujuc ? sorry I cannot catch you. 00:25:36 <ujuc> :) 00:26:36 <ujuc> well 00:26:48 <Daisy> Continue my talk, I think we also need discussion about the syncronization process too. 00:27:08 <ujuc> yeb.. 00:27:20 <Daisy> I mean, when to update the translation resources? When to download the translations to github? 00:27:38 <dylan> Another mail-list discussion 00:28:24 <gabrielcw> is there a way to do this nightly/periodically by jenkins? 00:28:35 <Daisy> I think, even the translation resources being updated daily at the beginning of a release, our translators won't keep an eye on the translation update and work on the transation from day to day. 00:28:52 <gabrielcw> I think this could be done weekly 00:29:40 <Daisy> gabrielcw: think of this way, when Icehouse starts, and the translation resources are updated weekly, will you work on the translation? 00:30:11 <gabrielcw> well, yes 00:30:25 <gabrielcw> as far as I can I do this 00:30:25 <Daisy> Even the translation resources may be updated and deleted? 00:30:34 <gabrielcw> I see 00:30:49 <Daisy> Because they are not stable... 00:30:50 <clarkb> I am going to jump in here for a sec. We currently push .pot updates to tx whenever code updates change .pot and pull from tx and propose that to gerrit once a day. Is that not working well? 00:31:07 <gabrielcw> maybe we should wait then for the mid of the development to start? 00:31:12 <Daisy> Thanks for jump in, clarkb. 00:31:18 <Daisy> we are discussing. 00:31:39 <Daisy> In Horizon release, we start the translation when the string is called frozen.. 00:32:14 <Daisy> Surely, there is no really "forzen", there are a few changes after string frozen. 00:32:54 <Daisy> but we start the work when there is no that so many changes frequently. 00:33:33 <gabrielcw> But like that we may not have enough time to do it depending on the project ? 00:34:13 <Daisy> I think we need to find a time point for translators to start the work, when most of the strings are to some kind of "stable". 00:34:23 <gabrielcw> I mean, it may change something, but won`t change entirely , I hope :) 00:34:26 <gabrielcw> yes 00:34:41 <Daisy> gabrielcw is correct. The time point is very important, because translators also need enough time to work on the translation too. 00:35:26 <Daisy> I don't know. It's hard to decide. 00:36:19 <vkmc> Daisy, Do strings change that much during the development period? 00:36:22 <clarkb> between string/feature freeze and release you have ~6 weeks, but the first release candidates come out before that 00:36:48 <Daisy> I don't know, vkmc 00:37:00 <Daisy> Developers may know. 00:37:07 <gabrielcw> just to sample, is there a way to retrieve a diff to check if there are tipically many strings that are removed completely? This is the worst case. I noticed that some strings that changed just had typos fixed, or improved 00:37:45 <gabrielcw> so if one starts early it won't be a waste if there isn't that much removed strings 00:37:54 <vkmc> Daisy, I don't have much experience, but usually I don't see so many changes with strings 00:37:56 <Daisy> clarkb: Horzion has 1700+ strings. If more components include, that will be a big number of strings. 00:38:13 <Daisy> 6 weeks is not enough. 00:38:26 <clarkb> Daisy: yeah, especially with the release candidates coming out sooner 00:39:52 <Daisy> If I'm a developer, and when I'm developing a feature, I may change the strings several times while I'm developing. But when I commit to a code repository, I may change, but may not that frequently. 00:39:53 <vkmc> We should take the decision considering the translation effort we will need if we decide to perform all the translations at the end of the release cycle, and the effort we will need to do if some strings change or get removed 00:41:19 <Daisy> you are right, vkmc. If we can get the numbers of string change in each commit, it will be helpful. 00:41:37 <vkmc> I usually contribute to Horizon with code reviews and don't see many changes in strings... that's why I ask... but maybe in other projects strings are more unestable 00:43:05 <Daisy> time is up. I just want to bring the our eyes to the current upload/download process, and the translation work in a release cycle too. 00:43:18 <Daisy> we can discuss in the mail list. 00:43:27 <gabrielcw> ok 00:43:42 <dylan> Ideally, we need a git-like tool records all string changes, even for deletion and new strings. 00:44:07 <Daisy> dylan: as Transifex said, all strings deleted will be saved in the translation memory of Transifex. 00:44:47 <Daisy> so these strings can still be found when it is in the recomend list. 00:45:33 <dylan> Can we do version control in transifex? 00:45:41 <dylan> for string changes 00:45:42 <Daisy> actually, I'm thinking if it is possible to use a git repository to contain only the translation resources, other than saving the translation resources in other projects. 00:45:51 <Daisy> no, no version control. 00:46:26 <Daisy> for example, we use a git repository to store only po files, po file from each project. 00:46:56 <gabrielcw> maybe there's s better way, but we could harvest the repos and thn gather in a new repo the translation files 00:47:17 <gabrielcw> certainly there's a better way :) but like that would be transparent for projects 00:47:21 <Daisy> and our daily work in Transifex will be saved in this git repository, but the syncronize between this git repo to other code base git repo is a certain period. 00:47:57 <Daisy> gabrielcw: I like the word: transparent. 00:48:16 <Daisy> that's a possible choice. 00:48:21 <gabrielcw> I was thinking about using jenkins for that 00:48:43 <Daisy> jenkins can help, I'm sure. 00:48:48 <gabrielcw> Akihiro could help answer if this is possible 00:49:10 <Daisy> let's move to next item. 00:49:18 <Daisy> Documentation translation - Operation guide 00:49:21 <Daisy> hehe. 00:49:27 <Daisy> Again, operation guide is the top priority. 00:49:33 <Daisy> Again, we need to have the first PoC of translated document publish website. 00:49:48 <Daisy> We have talked about operation guide for many times. 00:50:02 <gabrielcw> it's enourmous! 00:50:03 <Daisy> I think we need a time line to push things go on. 00:50:04 <gabrielcw> haha 00:50:38 <vkmc> That will hurt 00:50:53 <Daisy> I hope we can have a ja document web site before summit, so that I can demostrate that to people. 00:51:04 <Daisy> I will try to push this happen. 00:51:26 <Daisy> Next item: message translation. 00:51:50 <Daisy> Not horizon, but messages in Nova, glance, and something else. 00:51:50 <Daisy> Oslo team is working on the codes refactor of the translate messages. 00:52:00 <Daisy> I think we can raise the requirements to them on behalf of users and translators. 00:52:08 <Daisy> So firstly, I want to understand our opinion to the I18n policies of messages. 00:52:19 <Daisy> There are some questions, like: 00:52:25 <Daisy> Whether to translate log messages? 00:52:34 <Daisy> Whether to localize the REST API response messages? 00:52:40 <Daisy> Whether to translate command line output messages? 00:53:03 <Daisy> Do you have any other questions or concerns to the I18n polices of messages? 00:53:16 <gabrielcw> good points 00:53:18 <Daisy> We can get a list and send to mail list and ask for inputs. 00:53:42 <gabrielcw> about localization of dates? 00:53:50 <Daisy> We are from different country and we are the users. so we can decide the policy and ask developers to change their codes. :)) 00:54:00 <Daisy> date is a good point. 00:54:02 <fifieldt> sounds good 00:54:06 <vkmc> Daisy, How technical words should be translated? Or... should those be translated at all? 00:54:35 <Daisy> what does "technical words" mean, vkmc? 00:54:46 <gabrielcw> i see some problems with that, because I was wondering if I translate the date string, if the datepicker of the code will have this option you know 00:55:07 <gabrielcw> the message says dd/mm/yy and the datepicker fills mm/dd/yy 00:55:09 <Daisy> gabrielcw: I don't know the technical details of date localization. 00:55:26 <Daisy> gabrielcw: I don't know how it is supported in Python framework. 00:55:31 <gabrielcw> there's some development effort needed to support this kind of thing 00:56:07 <gabrielcw> depends mostly of the UI I think, so it's JS 00:56:11 <vkmc> Daisy, For instance, "Router" or "VIP" (Virtual IP)... there are others more complex 00:56:22 <Daisy> understand, vkmc . 00:57:29 <Daisy> In my opinion, whether to translate technical words should be discussed within the language translation team and get a consensus. 00:57:55 <Daisy> Then the whole language translation team should follow the agreement. 00:58:00 <Daisy> That's enough. 00:58:01 <dylan> yes 00:58:03 <vkmc> Daisy, Sometimes there is a risk that the translation generates confusion, most technical users are used to read them in English 00:58:04 <vkmc> Agree 00:58:07 <dylan> that's good 00:58:21 <gabrielcw> agree 00:58:27 <Daisy> I know decision is hard to make, vkmc . :) 00:58:48 <vkmc> Yeah :) 00:58:50 <Daisy> Like when I translate VCPU, I asked Akihiro Motoki what does it mean, 00:59:08 <gabrielcw> haha 00:59:09 <Daisy> I asked Akihiro Motoki whether he translated it. 00:59:12 <dylan> I think this is also the problem for all translation projects 00:59:22 <gabrielcw> i got into this also 00:59:26 <Daisy> there are some common questions, yes. 00:59:57 <Daisy> but I'm open if different language teams have different answers. 01:00:20 <Daisy> time is up. 01:00:26 <vkmc> It's yeah, and it's important that we create a dictionary of those words in each translation team and have it as a guide to keep consistency 01:00:48 <vkmc> I will discuss it with the Spanish team 01:01:03 <Daisy> It looks like we need a lot of discussion within our mail list. I will summarize these questions together and send to mail list. so please actively express your idea in the mail list. 01:01:08 <dylan> 'a dictionary of those words in each translation team', that is necessary I think 01:01:24 <Daisy> I agree, dylan. 01:01:33 <Daisy> That can be a requirement to our translation tool. 01:01:44 <dylan> right 01:01:57 <Daisy> OK. Nice to talk with you 01:02:08 <Daisy> Looking forwad to continue the discussion by email. 01:02:17 <vkmc> Yay :) Thanks all 01:02:21 <dylan> Nice talk 01:02:24 <Daisy> Thank you for joinning the meeting. 01:02:24 <ujuc> :) 01:02:31 <Daisy> #endmeeting