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 <[email protected]> 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 <
> [email protected]>:
>
> 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> > 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> > 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> > 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> >:
>
> 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> > 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
> <[email protected]<https://e.mail.ru/sentmsg?mailto=mailto%[email protected]>
> >:
>
> 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