JSFiddle - React, Tailwind, and code Playground
HTML
<h3>Javascript similar al plugin Qtranslate de wordpress</h3>
<div id="output"></div>
<h4>Variante idioma por defecto</h4>
<p>Variantes para mostrar una cadena con el idioma por defecto en caso de no encontrar el especifico</p>
<div id="output2"></div>
JavaScript
function getText(text, lang) {
var text = text || '';
var lang = lang || '';
// Builds regex based on supplied language
var re = new RegExp("<!--:" + lang + "-->(.*?)<!--:-->");
// Returns first backreference
var control = text.match(re);
if (control !== null) { control = control[1] } else { control = null;}
return control;
}
//establecer la cadena
var str= "<!--:es-->candena en español áéíöüñ<!--:--><!--:fr-->Qu’est-ce que je dis quand je veux m'excuser ?<!--:--><!--:en-->A long time ago.<!--:-->";
//======================= cambiar idioma es, en , fr
var lang = 'fr';
$('#output').html('idioma selecionado (' + lang +')');
$('#output').append('<br \>' + getText(str,lang));
/* Variante idioma por defecto:
defaultLang = variable con el idoma por defecto entre es, en ,fr
lang = idioma que no este dentro de la cadena
*/
var defaultLang = 'en';
lang = 'ca';
$('#output2').html('a' + getText(str,'ca'));
if (getText(str,lang) === null) {
$('#output2').html('idioma (' + lang + ') no encontrado');
$('#output2').append('<br />idioma por defecto (' + defaultLang + ') ' + '<br \>' + getText(str,defaultLang));
} else {
$('#output2').html(getText(str,lang));
}