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