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