[Wok][PATCH 0/7] Multi-Culture Support

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch set provides multi-culture support by adding another drop down list during login for user locale selection. The numeric data and datetime fields are formatted based on the locale selected. Pooja Kulkarni (7): Multi-Culture Support - Add a separate drop down list for locale Multi-Culture support - Add methods to get and set locales in wok.lang.js Multi-Culture support - Add locale in format settings in wok.line-chart.js Multi-Culture support : Format datetime as per locale in wok.list.js Multi-Culture support : Implement new drop down list for locale in wok.login.js Multi-Culture support : Modify wok.formatMeasurement util to include formatting based on locale Multi-Culture support : Format datetime in user activity log as per locale ui/js/src/wok.lang.js | 8 ++++++++ ui/js/src/wok.line-chart.js | 3 ++- ui/js/src/wok.list.js | 4 ++++ ui/js/src/wok.login.js | 9 +++++++++ ui/js/src/wok.utils.js | 10 +++++++--- ui/js/wok.bootgrid.js | 10 +++++++++- ui/js/wok.user-log.js | 3 ++- ui/pages/login.html.tmpl | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 75 insertions(+), 6 deletions(-) -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch adds another drop down list for user locale selection. The list includes the 11 languages supported in UI plus a few extra languages for now (This will be extended later). By default, the locale will be the UI language selected. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/pages/login.html.tmpl | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/ui/pages/login.html.tmpl b/ui/pages/login.html.tmpl index 411874b..6ea80e1 100644 --- a/ui/pages/login.html.tmpl +++ b/ui/pages/login.html.tmpl @@ -119,6 +119,9 @@ <span id="logging" style="display: none;">$_("Logging in...")</span> </button> </div> + <div id=""> + <dl> + <dt> <select id="userLang" class="selectpicker col-md-12 col-lg-12"> <option value="en_US">English (US)</option> <option value="zh_CN">中文(简体)</option> @@ -132,6 +135,37 @@ <option value="ru_RU">Русский (Россия)</option> <option value="zh_TW">中文(繁體)</option> </select> + </dt> + <dd><h3 style="margin-top:7px; margin-bottom:40px; color:grey">Language</h3></dd> + <dt> + <select id="userLocale" class="selectpicker col-md-12 col-lg-12"> + <option value="af_NA">Afrikaans (Namibia)</option> + <option value="ar_DZ">Arabic (Algeria)</option> + <option value="az_AZ">Azerbaijani (Azerbaijan)</option> + <option value="en_US">English (US)</option> + <option value="hy_AM">Armenian (Armenia)</option> + <option value="hi_IN">Hindi (India)</option> + <option value="nl_BE">Dutch (Belgium)</option> + <option value="ms_MY">Malay (Malaysia)</option> + <option value="no_NO">Norwegian (Norway)</option> + <option value="sq_AL">Albanian (Albania)</option> + <option value="sv_SE">Swedish (Sweden)</option> + <option value="uz_UZ">Uzbek (Uzbekistan)</option> + <option value="zh_CN">中文(简体)</option> + <option value="pt_BR">Português (Brasil)</option> + <option value="de_DE">Deutsch (Deutschland)</option> + <option value="es_ES">Español (España)</option> + <option value="fr_FR">Français (France)</option> + <option value="it_IT">Italiano (Italia)</option> + <option value="ja_JP">日本語 (日本)</option> + <option value="ko_KR">한국어 (대한민국)</option> + <option value="ru_RU">Русский (Россия)</option> + <option value="zh_TW">中文(繁體)</option> + </select> + </dt> + <dd><h3 style="margin-top:7px; color:grey">Locale</dd> + </dl> + </div> </form> </div> <div class="row"> -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch adds separate methods to get the locale from cookies (if set) and to set the locale. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.lang.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/ui/js/src/wok.lang.js b/ui/js/src/wok.lang.js index b3791e7..e62753d 100644 --- a/ui/js/src/wok.lang.js +++ b/ui/js/src/wok.lang.js @@ -46,6 +46,14 @@ wok.lang = { 'en_US'; }, + get_loc: function() { + return wok.cookie.get('wokLocale') || 'en-US'; + }, + + set_loc: function(loc) { + wok.cookie.set('wokLocale', loc, 365); + }, + set: function(lang) { wok.cookie.set('wokLang', lang, 365); } -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch includes the locale in format setting for line-chart widget. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.line-chart.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ui/js/src/wok.line-chart.js b/ui/js/src/wok.line-chart.js index e0113f3..12744af 100644 --- a/ui/js/src/wok.line-chart.js +++ b/ui/js/src/wok.line-chart.js @@ -79,7 +79,8 @@ wok.widget.LineChart = function(params) { formatSettings = { base: series['base'], unit: series['unit'], - fixed: series['fixed'] + fixed: series['fixed'], + locale: series['locale'] }; } }); -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch formats the datetime fields as per locale in wok-list widget. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.list.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/ui/js/src/wok.list.js b/ui/js/src/wok.list.js index f40b2e2..6edf657 100644 --- a/ui/js/src/wok.list.js +++ b/ui/js/src/wok.list.js @@ -123,6 +123,10 @@ wok.widget.List.prototype = (function() { var checkboxName = $('ul', container).parent().parent().parent().attr('id') + '-check' || $(container).parent().parent().parent().attr('id') + '-check'; $.each(fields, function(fi, field) { var value = getValue(field.name, row); + if (field.name === 'time') { + var dte = new Date(value.substr(0,10)+'T'+value.substr(11)) + value = dte.toLocaleString(wok.lang.get_loc().replace('_','-')) + } if (field.type === 'status' && field.name === 'enabled') { styleClass = (value === true ? '' : ' disabled'); state = [ -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch implements the new drop down list for locale selection in wok.login.js Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.login.js | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/ui/js/src/wok.login.js b/ui/js/src/wok.login.js index f8eed3a..5231b7c 100644 --- a/ui/js/src/wok.login.js +++ b/ui/js/src/wok.login.js @@ -25,11 +25,20 @@ wok.login_main = function() { $('.filter-option').parent().attr('title',$('#userLang option[value="'+selectedLanguage+'"]').text()); $('.filter-option').text($('#userLang option[value="'+selectedLanguage+'"]').text()); + var selectedLocale = wok.lang.get_loc(); + $('#userLocale').val(selectedLocale); + $('#userLocale option[value="'+selectedLocale+'"]').attr("selected", "selected"); + $('.filter-option').attr('title',$('#userLocale option[value="'+selectedLocale+'"]').text()); + $('#userLang').on('change', function() { wok.lang.set($(this).val()); location.reload(); }); + $('#userLocale').on('change', function() { + wok.lang.set_loc($(this).val()); + }); + var query = window.location.search; var error = /.*error=(.*?)(&|$)/g.exec(query); if (error && error[1] === "sessionTimeout") { -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch modifies the wok.formatMeasurement util to include formatting based on locale passed, in wok.utils.js Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/src/wok.utils.js | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/ui/js/src/wok.utils.js b/ui/js/src/wok.utils.js index 214749a..d198c37 100644 --- a/ui/js/src/wok.utils.js +++ b/ui/js/src/wok.utils.js @@ -140,6 +140,8 @@ wok.changetoProperUnit = function(numOrg, digits, base) { return new Formatted(number, unit); } + var n_locale = settings['locale'] || null; + var fixed = settings['fixed']; var unitMapping = unitBaseMapping[base]; @@ -153,11 +155,13 @@ wok.changetoProperUnit = function(numOrg, digits, base) { var formatted = number / startingValue; formatted = fixed ? formatted.toFixed(fixed) : formatted; - + formatted = n_locale ? Number(formatted).toLocaleString(n_locale) : Number(formatted).toLocaleString() return new Formatted(formatted, suffix + unit); } - - return new Formatted(fixed ? number.toFixed(fixed) : number, unit); + var formatted = 0; + formatted = fixed ? formatted.toFixed(fixed) : formatted; + formatted = n_locale ? Number(formatted).toLocaleString(n_locale) : Number(formatted).toLocaleString() + return new Formatted(formatted, unit); }; wok.formatMeasurement = format; -- 2.1.0

From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> co-authored by: Archana Singh <archus@linux.vnet.ibm.com> This patch formats the datetime fields in user activity log as per locale by using suitable formatters. Signed-off-by: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com> --- ui/js/wok.bootgrid.js | 10 +++++++++- ui/js/wok.user-log.js | 3 ++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ui/js/wok.bootgrid.js b/ui/js/wok.bootgrid.js index 1312fe5..bc4f993 100644 --- a/ui/js/wok.bootgrid.js +++ b/ui/js/wok.bootgrid.js @@ -72,6 +72,14 @@ wok.createBootgrid = function(opts) { }, "settings-user-log-message": function(column, row) { return '<span class="trim" data-toggle="tooltip" data-placement="auto bottom" title="'+row.message+'">' +row.message+ '</span> '; + }, + "settings-user-log-date": function(column, row) { + var dte = new Date(row.date); + return dte.toLocaleDateString(wok.lang.get_loc().replace('_','-')); + }, + "settings-user-log-time": function(column, row) { + var dte = new Date(row.date); + return dte.toLocaleTimeString(wok.lang.get_loc().replace('_','-')); } }, css: { @@ -138,4 +146,4 @@ wok.showBootgridData = function(opts) { wok.hideBootgridData = function(opts) { $("#" + opts['gridId'] + " tbody").hide(); -}; \ No newline at end of file +}; diff --git a/ui/js/wok.user-log.js b/ui/js/wok.user-log.js index 8c2b4a7..1bdbd31 100644 --- a/ui/js/wok.user-log.js +++ b/ui/js/wok.user-log.js @@ -94,6 +94,7 @@ wok.listUserLogConfig = function() { "title": i18n['WOKSETT0004M'] }, { "column-id": 'time', + "formatter": "settings-user-log-time", "converter": 'string', "order": 'desc', "title": i18n['WOKSETT0005M'] @@ -243,4 +244,4 @@ wok.initUserLogWindow = function() { }); $('#form-advanced-search').submit(); }); -}; \ No newline at end of file +}; -- 2.1.0

Reviewed-by: Chandra Shekhar Reddy Potula <chandra@linux.vnet.ibm.com> On 5/4/16 11:27 AM, pkulkark@linux.vnet.ibm.com wrote:
From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com>
co-authored by: Archana Singh <archus@linux.vnet.ibm.com>
This patch set provides multi-culture support by adding another drop down list during login for user locale selection. The numeric data and datetime fields are formatted based on the locale selected.
Pooja Kulkarni (7): Multi-Culture Support - Add a separate drop down list for locale Multi-Culture support - Add methods to get and set locales in wok.lang.js Multi-Culture support - Add locale in format settings in wok.line-chart.js Multi-Culture support : Format datetime as per locale in wok.list.js Multi-Culture support : Implement new drop down list for locale in wok.login.js Multi-Culture support : Modify wok.formatMeasurement util to include formatting based on locale Multi-Culture support : Format datetime in user activity log as per locale
ui/js/src/wok.lang.js | 8 ++++++++ ui/js/src/wok.line-chart.js | 3 ++- ui/js/src/wok.list.js | 4 ++++ ui/js/src/wok.login.js | 9 +++++++++ ui/js/src/wok.utils.js | 10 +++++++--- ui/js/wok.bootgrid.js | 10 +++++++++- ui/js/wok.user-log.js | 3 ++- ui/pages/login.html.tmpl | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 75 insertions(+), 6 deletions(-)

Two suggestion overall if make sense. 1. why do we first of all provide locale in the underscore ('_') format and replace with hyphen ('-') ? Is there a reason behind this or will be good idea to use the locale strings with hyphen ('-') and no conversions all over. 2. method naming get_loc() and set_loc() could have been some thing like get_locale() and set_locale() to be more precise that these are for the locale settings. loc confused me with location :-) On 5/4/16 2:40 PM, Chandra Shekhar Reddy Potula wrote:
Reviewed-by: Chandra Shekhar Reddy Potula <chandra@linux.vnet.ibm.com>
On 5/4/16 11:27 AM, pkulkark@linux.vnet.ibm.com wrote:
From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com>
co-authored by: Archana Singh <archus@linux.vnet.ibm.com>
This patch set provides multi-culture support by adding another drop down list during login for user locale selection. The numeric data and datetime fields are formatted based on the locale selected.
Pooja Kulkarni (7): Multi-Culture Support - Add a separate drop down list for locale Multi-Culture support - Add methods to get and set locales in wok.lang.js Multi-Culture support - Add locale in format settings in wok.line-chart.js Multi-Culture support : Format datetime as per locale in wok.list.js Multi-Culture support : Implement new drop down list for locale in wok.login.js Multi-Culture support : Modify wok.formatMeasurement util to include formatting based on locale Multi-Culture support : Format datetime in user activity log as per locale
ui/js/src/wok.lang.js | 8 ++++++++ ui/js/src/wok.line-chart.js | 3 ++- ui/js/src/wok.list.js | 4 ++++ ui/js/src/wok.login.js | 9 +++++++++ ui/js/src/wok.utils.js | 10 +++++++--- ui/js/wok.bootgrid.js | 10 +++++++++- ui/js/wok.user-log.js | 3 ++- ui/pages/login.html.tmpl | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 75 insertions(+), 6 deletions(-)
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel

On 05/04/2016 07:56 AM, Chandra Shekhar Reddy Potula wrote:
Two suggestion overall if make sense.
1. why do we first of all provide locale in the underscore ('_') format and replace with hyphen ('-') ? Is there a reason behind this or will be good idea to use the locale strings with hyphen ('-') and no conversions all over.
I would like to know if there's a reasoning for this too. If 'just happened' then we can choose either '-' or '_' to all cases.
2. method naming get_loc() and set_loc() could have been some thing like get_locale() and set_locale() to be more precise that these are for the locale settings. loc confused me with location :-)
+1, I would go with get_locale/set_locale. Specially when browsers provide APIs to retrieve the user geolocation. Yes, I am aware that this change would require resending all the patch sets sent to all other plug-ins, but I believe it's worth it in the long run.
On 5/4/16 2:40 PM, Chandra Shekhar Reddy Potula wrote:
Reviewed-by: Chandra Shekhar Reddy Potula <chandra@linux.vnet.ibm.com>
On 5/4/16 11:27 AM, pkulkark@linux.vnet.ibm.com wrote:
From: Pooja Kulkarni <pkulkark@linux.vnet.ibm.com>
co-authored by: Archana Singh <archus@linux.vnet.ibm.com>
This patch set provides multi-culture support by adding another drop down list during login for user locale selection. The numeric data and datetime fields are formatted based on the locale selected.
Pooja Kulkarni (7): Multi-Culture Support - Add a separate drop down list for locale Multi-Culture support - Add methods to get and set locales in wok.lang.js Multi-Culture support - Add locale in format settings in wok.line-chart.js Multi-Culture support : Format datetime as per locale in wok.list.js Multi-Culture support : Implement new drop down list for locale in wok.login.js Multi-Culture support : Modify wok.formatMeasurement util to include formatting based on locale Multi-Culture support : Format datetime in user activity log as per locale
ui/js/src/wok.lang.js | 8 ++++++++ ui/js/src/wok.line-chart.js | 3 ++- ui/js/src/wok.list.js | 4 ++++ ui/js/src/wok.login.js | 9 +++++++++ ui/js/src/wok.utils.js | 10 +++++++--- ui/js/wok.bootgrid.js | 10 +++++++++- ui/js/wok.user-log.js | 3 ++- ui/pages/login.html.tmpl | 34 ++++++++++++++++++++++++++++++++++ 8 files changed, 75 insertions(+), 6 deletions(-)
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
_______________________________________________ Kimchi-devel mailing list Kimchi-devel@ovirt.org http://lists.ovirt.org/mailman/listinfo/kimchi-devel
participants (3)
-
Chandra Shekhar Reddy Potula
-
Daniel Henrique Barboza
-
pkulkark@linux.vnet.ibm.com