Congratulations to Andun and Maxim. -- With best regards / с наилучшими пожеланиями, Alexei Fedotov / Алексей Федотов, http://dataved.ru/ +7 916 562 8095
[1] Start using Apache Openmeetings today, http://openmeetings.apache.org/ [2] Join Alexei Fedotov @linkedin, http://ru.linkedin.com/in/dataved/ [3] Join Alexei Fedotov @facebook, http://www.facebook.com/openmeetings On Sun, Sep 29, 2013 at 10:45 AM, Maxim Solodovnik <solomax...@gmail.com> wrote: > Congrats :) > Help and contribution are always welcome :) > Hope to see more fixes from you :) > > > On Sat, Sep 28, 2013 at 12:06 PM, Andun Sameera <andun...@gmail.com> wrote: > >> Hi All, >> >> Today I got the Congratulations mail from Google saying I have >> successfully passed the final evaluation of GSOC 2013! >> >> It has been a great pleasure and experience for me to work with OM >> community. Since the ideas are published in Apache Jira, I worked with the >> pretty dynamic and active community of OM. I learned lot of things which >> were new to me. But ultimately I got the opportunity to contribute to many >> public projects. All these successful things has happen because of the >> guidance and help given by all the devs. Specially my mentor Maxim, I have >> never seen such active person in my life. He was always there to guide me! >> So thank you very much all! For everything! >> >> Also I am not planning to leave with the completion of GSOC. I am >> completing my degree in this December. If you allow me to work with OM >> community if you think I have the potential to work with the community, I >> would like to be there. >> >> Thanks! >> >> >> On Sun, Sep 22, 2013 at 11:34 PM, Andun Sameera <andun...@gmail.com>wrote: >> >>> Thanks Andrey! >>> >>> I think all the things which need to be added to the Whiteboard under >>> GSOC is done now. I have successfully committed all these to Wicket-Stuff >>> repo. I have added it to main-build of Wicket-Stuff. Sooner it will be >>> released in public. Also I have added a wiki page for the Whiteboard in >>> https://github.com/wicketstuff/core/wiki/Whiteboard. >>> >>> Tomorrow the firm pencil down of GSOC will happen. I will update all >>> these code samples there and will finish the GSOC task. >>> >>> After the release of Wicket-Stuf we can use the whoteboard inside OM. >>> >>> Thanks! >>> >>> >>> On Sun, Sep 22, 2013 at 11:06 PM, Bogdanov Andrey <ba...@mail.ru> wrote: >>> >>>> I think this will work. The only requirements - lang should be set >>>> before including of whiteboard.js >>>> >>>> >>>> >>>> Воскресенье, 22 сентября 2013, 1:41 +05:30 от Andun Sameera < >>>> andun...@gmail.com>: >>>> >>>> I have no deep idea about the OM translation logic. I know only how >>>> to get the values. I think Maxim can help to get inside out idea. >>>> >>>> While that is like that I have succeed in th hack. Now the translation >>>> works fine in this manner. There is a global variable called lang. That is >>>> initialized via query params. Also there are array like ru, en, sp, etc. >>>> which contains text in different languages. All these code lies in >>>> translate.js. >>>> >>>> function getParameterByName(name) { >>>> name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); >>>> var regex = new RegExp("[\\?&]" + name + "=([^&#]*)"), >>>> results = regex.exec(location.search); >>>> return results == null ? "" : >>>> decodeURIComponent(results[1].replace(/\+/g, " ")); >>>> } >>>> >>>> var lang=getParameterByName('lang'); >>>> var ru = >>>> { >>>> // Tooltips for buttons >>>> "Common tools": "Общие >>>> инструменты", >>>> "Zoom in": "Увеличить", >>>> "Zoom out": "Уменьшить", >>>> "Show coordinates": "Показывать >>>> координаты", >>>> "Clear all": "Очистить все", >>>> "Clear traces": "Очистить >>>> следы", >>>> "Show information about selected element": "Информация об >>>> элементе", >>>> >>>> "Ruler-and-compass constructions": "Построения >>>> циркулем и линейкой", >>>> "Single point": "Точка", >>>> "Line through two points": "Прямая, >>>> проходящая через две точки", >>>> "Line segment connecting two points": "Отрезок, >>>> соединяющий две точки", >>>> "Circle with radius equals to the given segment": "Окружность с >>>> заданным радиусом", >>>> "Circle with given center": "Окружность с >>>> заданным центром", >>>> >>>> "Free hand drawing": "Рисование", >>>> "Insert picture": "Вставить >>>> картинку", >>>> "Change whiteboard background": "Изменить >>>> обои", >>>> "Curve": "Кривая линяя", >>>> "Polyline": "Ломаная >>>> линия", >>>> "Rectangle": >>>> "Прямоугольник", >>>> "Circle": "Окружность", >>>> "Text box": "Текст", >>>> "Highlight board area": "Выделить >>>> участок доски", >>>> "Draw an arrow": "Стрелка", >>>> "Highlight a point at whiteboard": "Отметить >>>> точку на доске", >>>> >>>> // Controls at the info dialog >>>> "Click to select other element": "Нажмите для >>>> выбора следующего элемента", >>>> "Hide": "Скрыть", >>>> "Click to hide element": "Нажмите, >>>> чтобы скрыть элемент", >>>> "Trace": "След", >>>> "Color": "Цвет", >>>> "Click to select color": "Нажмите для >>>> выбора цвета", >>>> "JSON code for drawing": "JSON-код для >>>> рисунка", >>>> >>>> // Element Labels in the info dialog >>>> "ClipArt does not exist": "Картинка >>>> отсутствует", >>>> "ClipArt from [{$label}]": "Картинка, >>>> источник {$label}", >>>> "Point does not exist": "Точка не >>>> сушествует", >>>> "Point: [{$x},{$y}]": "Точка >>>> [{$x},{$y}]", >>>> "Line does not exist": "Линия не >>>> существует", >>>> "Line [{$fromx},{$fromy}] - [{$tox},{$toy}]": "Линия от >>>> [{$fromx},{$fromy}] до [{$tox},{$toy}]", >>>> "Circle does not exist": "Окружность не >>>> существует", >>>> "Circle [{$x},{$y}] -> {$r}": "Окружность >>>> [{$x},{$y}] -> {$r}", >>>> "Curve does not exists": "Кривая не >>>> существует", >>>> "Rectangle does not exist": "Прямоугольник >>>> не существует", >>>> "Text does not exist": "Текст не >>>> существует", >>>> "Text [{$label}]": "Текст >>>> [{$label}]", >>>> "Underline does not exists": "Выделение не >>>> существует", >>>> "Underline": "Выделение", >>>> "Arrow does not exists": "Стрелка не >>>> существует", >>>> "Arrow": "Стрелка", >>>> "Pointer does not exists": "Указатель не >>>> существует", >>>> "Pointer [{$x},{$y}]": >>>> "Указатель на [{$x},{$y}]", >>>> >>>> // Messages >>>> "This browser doesn''t support graphics. Please use another web >>>> browser.": >>>> "Ваш браузер не поддерживает графику. Пожалуйста, используйте >>>> другой браузер" >>>> }; >>>> >>>> in whiteboard.js we have this getMsg implementation, >>>> >>>> goog.getMsg = function(str, opt_values) { >>>> >>>> console.log("--------------------------------------"); >>>> console.log(goog.LOCALE); >>>> console.log(lang); >>>> var translation = window[lang] || {}; >>>> console.log(translation); >>>> console.log("######################################"); >>>> str = translation[str] || str; >>>> var values = opt_values || {}; >>>> for (var key in values) { >>>> var value = ('' + values[key]).replace(/\$/g, '$$$$'); >>>> str = str.replace(new RegExp('\\{\\$' + key + '\\}', 'gi'), >>>> value); >>>> } >>>> return str; >>>> }; >>>> >>>> So we can pass lang via query params and do the dynamic language >>>> translation well. I think this method is OK. WDYT? >>>> >>>> Thanks! >>>> >>>> >>>> >>>> On Sun, Sep 22, 2013 at 1:12 AM, Bogdanov Andrey >>>> <ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru> >>>> > wrote: >>>> >>>> goog.LOCALE should be set before including of whiteboard.js script, but >>>> in compiled version "goog" variable is defined inside this script, so >>>> LOCALE couldn't be set. >>>> In the current committed versiion I didn't use goog.LOCALE and used >>>> independent variable current_LOCALE. >>>> Also I put goog.getMsg inside the script, but left transaltion strings >>>> outside - this allows to use different transllation files. >>>> >>>> Which translation approach is using in other parts of OM project? I >>>> think whitboard translation should be synchronized with them. >>>> >>>> Regards, >>>> Andrey >>>> >>>> >>>> >>>> Воскресенье, 22 сентября 2013, 0:58 +05:30 от Andun Sameera < >>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> >: >>>> >>>> I did this kind of a hack. I put all this code in to the >>>> whiteboard.js. Just after the line of 299 >>>> https://github.com/wicketstuff/core/blob/master/jdk-1.6-parent/whiteboard-parent/whiteboard/src/main/resources/org/wicketstuff/whiteboard/resource/whiteboard.js. >>>> When I did that I see the getMsg function executes each and every time >>>> which is referred. But the thing is the goog.LOCALE return en instead of >>>> ru. I put >>>> >>>> goog.LOCALE = 'ru'; >>>> >>>> this code in to the wicket head. But I think it is not set when the >>>> getMsg is run. I am searching for place to put this initialization which >>>> will pick up by getMsg. Will this work ? >>>> >>>> Thanks! >>>> >>>> Inserted code , >>>> >>>> var ru = >>>> { >>>> // Tooltips for buttons >>>> "Common tools": "Общие >>>> инструменты", >>>> "Zoom in": "Увеличить", >>>> "Zoom out": "Уменьшить", >>>> "Show coordinates": "Показывать >>>> координаты", >>>> "Clear all": "Очистить все", >>>> "Clear traces": "Очистить >>>> следы", >>>> "Show information about selected element": "Информация об >>>> элементе", >>>> >>>> "Ruler-and-compass constructions": "Построения >>>> циркулем и линейкой", >>>> "Single point": "Точка", >>>> "Line through two points": "Прямая, >>>> проходящая через две точки", >>>> "Line segment connecting two points": "Отрезок, >>>> соединяющий две точки", >>>> "Circle with radius equals to the given segment": "Окружность с >>>> заданным радиусом", >>>> "Circle with given center": "Окружность с >>>> заданным центром", >>>> >>>> "Free hand drawing": "Рисование", >>>> "Insert picture": "Вставить >>>> картинку", >>>> "Change whiteboard background": "Изменить >>>> обои", >>>> "Curve": "Кривая линяя", >>>> "Polyline": "Ломаная >>>> линия", >>>> "Rectangle": >>>> "Прямоугольник", >>>> "Circle": "Окружность", >>>> "Text box": "Текст", >>>> "Highlight board area": "Выделить >>>> участок доски", >>>> "Draw an arrow": "Стрелка", >>>> "Highlight a point at whiteboard": "Отметить >>>> точку на доске", >>>> >>>> // Controls at the info dialog >>>> "Click to select other element": "Нажмите для >>>> выбора следующего элемента", >>>> "Hide": "Скрыть", >>>> "Click to hide element": "Нажмите, >>>> чтобы скрыть элемент", >>>> "Trace": "След", >>>> "Color": "Цвет", >>>> "Click to select color": "Нажмите для >>>> выбора цвета", >>>> "JSON code for drawing": "JSON-код для >>>> рисунка", >>>> >>>> // Element Labels in the info dialog >>>> "ClipArt does not exist": "Картинка >>>> отсутствует", >>>> "ClipArt from [{$label}]": "Картинка, >>>> источник {$label}", >>>> "Point does not exist": "Точка не >>>> сушествует", >>>> "Point: [{$x},{$y}]": "Точка >>>> [{$x},{$y}]", >>>> "Line does not exist": "Линия не >>>> существует", >>>> "Line [{$fromx},{$fromy}] - [{$tox},{$toy}]": "Линия от >>>> [{$fromx},{$fromy}] до [{$tox},{$toy}]", >>>> "Circle does not exist": "Окружность не >>>> существует", >>>> "Circle [{$x},{$y}] -> {$r}": "Окружность >>>> [{$x},{$y}] -> {$r}", >>>> "Curve does not exists": "Кривая не >>>> существует", >>>> "Rectangle does not exist": "Прямоугольник >>>> не существует", >>>> "Text does not exist": "Текст не >>>> существует", >>>> "Text [{$label}]": "Текст >>>> [{$label}]", >>>> "Underline does not exists": "Выделение не >>>> существует", >>>> "Underline": "Выделение", >>>> "Arrow does not exists": "Стрелка не >>>> существует", >>>> "Arrow": "Стрелка", >>>> "Pointer does not exists": "Указатель не >>>> существует", >>>> "Pointer [{$x},{$y}]": >>>> "Указатель на [{$x},{$y}]", >>>> >>>> // Messages >>>> "This browser doesn''t support graphics. Please use another web >>>> browser.": >>>> "Ваш браузер не поддерживает графику. Пожалуйста, используйте >>>> другой браузер" >>>> }; >>>> >>>> goog.getMsg = function(str, opt_values) { >>>> >>>> console.log("--------------------------------------"); >>>> console.log(goog.LOCALE); >>>> var translation = window[goog.LOCALE] || {}; >>>> console.log(translation); >>>> console.log("######################################"); >>>> str = translation[str] || str; >>>> var values = opt_values || {}; >>>> for (var key in values) { >>>> var value = ('' + values[key]).replace(/\$/g, '$$$$'); >>>> str = str.replace(new RegExp('\\{\\$' + key + '\\}', 'gi'), >>>> value); >>>> } >>>> return str; >>>> }; >>>> >>>> >>>> On Sun, Sep 22, 2013 at 12:48 AM, Bogdanov Andrey >>>> <ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru> >>>> > wrote: >>>> >>>> Hi Andun, >>>> >>>> Unfortunately I didn't find good solution for the issue. I made some >>>> hack which allows to fix it right now but I think it requires other >>>> approach. >>>> Now you could get the latest version from github and use the next code: >>>> >>>> <script> >>>> current_LOCALE = 'ru'; >>>> >>>> </script> >>>> <script src="translate.js"></script> >>>> <script src="whiteboard.js"></script> >>>> >>>> >>>> It seems goog.getMsg approach works when locale set at "compilation" >>>> time, but didn't work when locale set in runtime after compilation. >>>> I will think on the problem and try to find better solution and will be >>>> gratefull if somebody has any suggestions. >>>> >>>> Regards, >>>> Andrey Bogdanov >>>> >>>> >>>> Суббота, 21 сентября 2013, 22:56 +05:30 от Andun Sameera < >>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> >: >>>> >>>> Hi Andrey, >>>> >>>> I tried to add your translate.js base logic to whiteboard. The thing is >>>> when I add the dependency to translate.js, it gives following error. >>>> >>>> ReferenceError: goog is not defined >>>> [Break On This Error] >>>> >>>> goog.provide('bay.whiteboard.translation'); >>>> >>>> When I looked at your >>>> https://github.com/bay73/whiteboard/blob/master/src/index_t.htmlimplementation, >>>> I found that there is a special dependency to, >>>> >>>> <script src="../../closure-library/closure/goog/base.js"></script> >>>> >>>> solve the problem. AFAIK in the OM whiteboard code we cant add all these >>>> Closure dependencies. So what is the resolution to this issue? >>>> >>>> Quick help will be highly appropriated since I have to finish this >>>> before day after tomorrow! >>>> >>>> Thanks! >>>> >>>> >>>> >>>> >>>> >>>> On Wed, Sep 18, 2013 at 9:43 PM, Andun Sameera >>>> <andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> > wrote: >>>> >>>> Here is another suggestion which came from Closure forum. >>>> >>>> "In Chrome apps and extensions, localization is done at runtime using >>>> chrome.i18n.getMessage() -- you pass it a message id and Chrome pulls the >>>> correct translation from the messages.json file for the user's current >>>> locale. http://developer.chrome.com/apps/i18n.html has all the details. >>>> >>>> I assume you're not writing a Chrome extension, but I bring it up >>>> because we added pass to the JS compiler, which is activated by the >>>> --replace_messages_with_ >>>> chrome_i18n flag, to replace goog.getMsg() calls with >>>> chrome.i18n.getMessage() calls. You could probably hack together another >>>> compiler pass to do something similar, along the lines of what Ilia Mirkin >>>> suggested, if you were in the mood to hack on the Closure Compiler. I'm not >>>> sure if there are any good "How to write a new pass for the Closure >>>> Compiler" tutorials around, but hopefully you can find one or just follow >>>> the example of the existing ones." >>>> >>>> I am looking in to feasible solution! Comment needed to find a good >>>> approach! >>>> >>>> Thanks! >>>> >>>> >>>> >>>> On Fri, Sep 6, 2013 at 11:56 AM, Andun Sameera >>>> <andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> > wrote: >>>> >>>> I got your point! We can add these kind of arrays to add many languages. >>>> But in OM we are using files to give the localized words like this. Using >>>> keys to load values, >>>> >>>> <input type="submit" value="" wicket:id="ajax-cancel-button" >>>> wicket:ommessage="title:157" /> >>>> >>>> I think Maxim can give me a clue to load suitable values from those file >>>> to this javascript arrays( >>>> https://github.com/bay73/whiteboard/blob/master/src/translate.js)! >>>> >>>> Thanks! >>>> >>>> >>>> On Fri, Sep 6, 2013 at 11:43 AM, Bogdanov Andrey >>>> <ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru> >>>> > wrote: >>>> >>>> Yes, you are righ - documentation about this topic is very poor. >>>> >>>> Now I've made some translation to Russian - you could see translate.js >>>> script which I've commited to the >>>> https://github.com/bay73/whiteboard.git. >>>> This is simple dictionary - any language could be added there. >>>> >>>> Now I could set locale like this: >>>> >>>> <script> >>>> goog.LOCALE = 'ru'; >>>> </script> >>>> <script src="translate.js"></script> >>>> <script src="whiteboard.js"></script> >>>> >>>> Regards, >>>> Andrey Bogdanov >>>> >>>> >>>> Пятница, 6 сентября 2013, 0:49 +05:30 от Andun Sameera < >>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> >: >>>> >>>> I tried to find some material related to localization. But finding >>>> help for Closure is a tough task. Cant we use a normal Javascript way to >>>> handle run-time change of languages? >>>> >>>> >>>> On Thu, Sep 5, 2013 at 6:19 PM, Bogdanov Andrey >>>> <ba...@mail.ru<https://e.mail.ru/sentmsg?mailto=mailto%3aba...@mail.ru> >>>> > wrote: >>>> >>>> Hi Andun, >>>> >>>> I've push a version which allows to clear background. >>>> You could call board.setBackground() or board.setBackground('') - it >>>> will work >>>> >>>> Also I've surrounded all nessages with goog.getMsg call, so we could add >>>> internationalization. >>>> >>>> Regards, >>>> Andrey >>>> >>>> >>>> >>>> >>>> Среда, 4 сентября 2013, 22:51 +05:30 от Andun Sameera < >>>> andun...@gmail.com<https://e.mail.ru/sentmsg?mailto=mailto%3aandun...@gmail.com> >>>> >: >>>> >>>> I have re-factored the code and committed. Also I have added undo for >>>> DOC >>>> addition, page navigation. Also there is another small problem which >>>> Andrey >>>> can answer me. How can we go to a empty background from? I tired to set a >>>> "" as the url. But didn't work. >>>> >>>> Thanks! >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Андрей Богданов >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Андрей Богданов >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Андрей Богданов >>>> >>>> >>>> >>>> >>>> -- >>>> Regards >>>> Andun S.L. Gunawardana >>>> Undergraduate >>>> Department of Computer Science And Engineering >>>> University of Moratuwa >>>> Sri Lanka >>>> >>>> Blog - http://www.insightforfuture.blogspot.com/ >>>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>>> Twitter -http://twitter.com/AndunSLG >>>> >>>> >>>> >>>> >>>> >>>> >>>> >>>> -- >>>> Андрей Богданов >>>> >>> >>> >>> >>> -- >>> Regards >>> Andun S.L. Gunawardana >>> Undergraduate >>> Department of Computer Science And Engineering >>> University of Moratuwa >>> Sri Lanka >>> >>> Blog - http://www.insightforfuture.blogspot.com/ >>> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >>> Twitter -http://twitter.com/AndunSLG >>> >>> >>> >>> >>> >> >> >> >> -- >> Regards >> Andun S.L. Gunawardana >> Undergraduate >> Department of Computer Science And Engineering >> University of Moratuwa >> Sri Lanka >> >> Blog - http://www.insightforfuture.blogspot.com/ >> LinkedIn - http://www.linkedin.com/pub/andun-s-l-gunawardana/34/646/703 >> Twitter -http://twitter.com/AndunSLG >> >> >> >> >> > > > > -- > WBR > Maxim aka solomax