Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 469881

Summary: [tern] Tern worker should support browser locale to support nls messages.
Product: [ECD] Orion Reporter: libing wang <libingw>
Component: JS ToolsAssignee: libing wang <libingw>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: Michael_Rennie
Version: 8.0   
Target Milestone: 9.0   
Hardware: PC   
OS: Windows 7   
Whiteboard:
Bug Depends on:    
Bug Blocks: 469838    

Description libing wang CLA 2015-06-10 15:50:04 EDT
All the strings in the workerMessages.js are not translatable because the WorkerNavigator does not have language property supported in major browsers.
https://developer.mozilla.org/en-US/docs/Web/API/Worker/Functions_and_classes_available_to_workers
Comment 1 libing wang CLA 2015-06-10 15:51:47 EDT
propsed patch:
diff --git a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
index 3226487..31c1b89 100644
--- a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
+++ b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
@@ -40,7 +40,8 @@
 'orion/editor/stylers/application_json/syntax',
 'orion/editor/stylers/application_schema_json/syntax',
 'orion/editor/stylers/application_x-ejs/syntax',
-'i18n!javascript/nls/messages'
+'i18n!javascript/nls/messages',
+'orion/URL-shim'
 ], function(PluginProvider, Bootstrap, Deferred, FileClient, Metrics, Esprima, Estraverse, ScriptResolver, ASTManager, QuickFixes, TernAssist, 
 			EslintValidator, Occurrences, Hover, Outliner,	CUProvider, Util, Logger, GenerateDocCommand, OpenDeclCommand, RenameCommand, mJS, mJSON, mJSONSchema, mEJS, javascriptMessages) {
 
@@ -111,7 +112,9 @@
     			this.worker.port.start();
     			this.worker.port.postMessage('');
     		} else { */
-    			this.worker = new Worker(new URL(script, window.location.href).href);
+ 				var wUrl = new URL(script, window.location.href);
+    			wUrl.query.set("worker-language", navigator.language);   			
+    			this.worker = new Worker(wUrl.href);
     			this.worker.onmessage = onMessage;
     			this.worker.onerror = onError;
     			this.worker.postMessage('');
Comment 2 libing wang CLA 2015-06-10 15:53:09 EDT
newer patch:

diff --git a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
index 3226487..31c1b89 100644
--- a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
+++ b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/javascriptPlugin.js
@@ -40,7 +40,8 @@
 'orion/editor/stylers/application_json/syntax',
 'orion/editor/stylers/application_schema_json/syntax',
 'orion/editor/stylers/application_x-ejs/syntax',
-'i18n!javascript/nls/messages'
+'i18n!javascript/nls/messages',
+'orion/URL-shim'
 ], function(PluginProvider, Bootstrap, Deferred, FileClient, Metrics, Esprima, Estraverse, ScriptResolver, ASTManager, QuickFixes, TernAssist, 
 			EslintValidator, Occurrences, Hover, Outliner,	CUProvider, Util, Logger, GenerateDocCommand, OpenDeclCommand, RenameCommand, mJS, mJSON, mJSONSchema, mEJS, javascriptMessages) {
 
@@ -111,7 +112,9 @@
     			this.worker.port.start();
     			this.worker.port.postMessage('');
     		} else { */
-    			this.worker = new Worker(new URL(script, window.location.href).href);
+ 				var wUrl = new URL(script, window.location.href);
+    			wUrl.query.set("worker-language", navigator.language);   			
+    			this.worker = new Worker(wUrl.href);
     			this.worker.onmessage = onMessage;
     			this.worker.onerror = onError;
     			this.worker.postMessage('');
diff --git a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/ternWorkerCore.js b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/ternWorkerCore.js
index 0093600..0a14b52 100644
--- a/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/ternWorkerCore.js
+++ b/bundles/org.eclipse.orion.client.javascript/web/javascript/plugins/ternWorkerCore.js
@@ -9,8 +9,17 @@
  * Contributors:
  *     IBM Corporation - initial API and implementation
  *******************************************************************************/
-/*globals importScripts onmessage:true doctrine onconnect:true*/
+/*globals importScripts onmessage:true doctrine onconnect:true requirejs*/
 /*eslint-env node, browser*/
+var lang ='en';
+var sear = self.location.search;
+if(sear) {
+	var langs = sear.split('worker-language');
+	if(Array.isArray(langs) && langs.length === 2) {
+		lang = langs[1].slice(1);
+	}
+} 
+requirejs.config({locale: lang});
 require({
 	baseUrl: "../../", //$NON-NLS-1$
 	paths: {