Message Boards

Translating in JS for JSF Projects with Liferay.Language

Tim Kieritz, modified 2 Years ago.

Translating in JS for JSF Projects with Liferay.Language

New Member Post: 1 Join Date: 11/11/21 Recent Posts

I am trying to access the resource translations in my JSF project.

But the translation doesn't work. The translation in the xhtml file with #{i18n['...']} works but in js the Liferay.Language.get('...') returns the resource key.


I created an example project and edited the view.xhtml and added the changeContent.js. The content of the two files can be found below.

Debugging by me:
The resourcekey is the same in both cases, so at least JSF knows where to look for it.
The browser has the unmodified js file and the js is executed.

As far as I understood there is a mechanism that should send down a modified js that looks like 
var translatedString = 'Translated String';

That mechanism doesn't seem to work. Should that mechanism work for JSF projects? What is the proposed way to transate inside JS files for JSF projects? I looked at the demos at https://github.com/liferay/liferay-faces-bridge-impl/tree/master/demo but they don't seem to use js.

src/main/webapp/WEB-INF/views/view.xhtml

<?xml version="1.0"?>

<f:view
	xmlns="http://www.w3.org/1999/xhtml"
	xmlns:f="http://xmlns.jcp.org/jsf/core"
	xmlns:h="http://xmlns.jcp.org/jsf/html"
>
	<h:head>
		<h:outputStylesheet library="css" name="main.css" />
		<h:outputScript library="js" name="changeContent.js"/>
	</h:head>
	<h:body>
		<h:panelGroup id="panelId" layout="block">
			<h:outputText styleClass="bold-hello-world" value="#{i18n['LanguageTest-hello-world']}" />
			<p onclick="window.changeContent(this)">Click me to change me</p>
		</h:panelGroup>
	</h:body>
</f:view>


src/main/webapp/WEB-INF/resources/js/changeContent.js

window.changeContent = function(paragraph){
	var translatedString = Liferay.Language.get('LanguageTest-hello-world');
	console.log(translatedString);
	paragraph.innerHTML = translatedString;
}

 

thumbnail
Olaf Kock, modified 2 Years ago.

RE: Translating in JS for JSF Projects with Liferay.Language

Liferay Legend Posts: 6396 Join Date: 9/23/08 Recent Posts

You might want to check LPS-113569, and specifically if the LanguageFilter works for you - As you mention JSF, I assume that you might​​​​​​​ be in a WAR file deployment.