Estoy usando gettext
en mi código PHP, pero tengo un gran problema. Todos mis archivos de JavaScript no se ven afectados por la traducción, ¿alguien puede decirme una forma fácil de obtener las traducciones en el idioma elegido en JavaScript también.Traducción en JavaScript como gettext en PHP?
Respuesta
La forma más fácil es tener un archivo PHP de escritura las traducciones de gettext
a las variables de JavaScript.
js_lang.php:
word_hello = "<?php echo gettext("hello"); ?>"
word_world = "<?php echo gettext("world"); ?>"
word_how_are_you = "<?php echo gettext("how_are_you"); ?>"
y luego se incluyen: (! Que son muy interesantes)
<script type="text/javascript" src="js_lang.php"></script>
También recomendaría este método junto con la traducción plugins S.Mark menciona .
Puede definir el diccionario en el encabezado de la página actual, sin incluir un archivo externo, pero de esa manera, debería buscar y enviar los datos en cada carga de página, bastante innecesario, ya que un diccionario tiende a cambiar muy raramente.
intento, jQuery i18n o jQuery localisation
Un ejemplo para jQuery i18n, y por supuesto que necesita para generar diccionario basado en JSON de archivo de lenguaje de php
var my_dictionary = {
"some text" : "a translation",
"some more text" : "another translation"
}
$.i18n.setDictionary(my_dictionary);
$('div#example').text($.i18n._('some text'));
tengo nevere tryt eso, y su comming en combinasion whit JSON, alertas y más. – ParisNakitaKejser
o puede intentarlo http://i18next.com viene con un conversor adicional de gettext a json. y tiene todas las funciones. – jamuhl
por lo general a la exportación LA traducciones en una estructura de JavaScript:
var app = {}
var app.translations = {
en: { hello: "Hello, World!"
, bye: "Goodbye!"
}
, nl: { hello: "Hallo, Wereld!"
, bye: "Tot ziens!"
}
};
El idioma actual de los textos de páginas se puede definir usando: <html xml:lang="en" lang="nl">
Esto se puede leer en JavaScript:
var curentLanguage = document.documentElement.lang || "en";
app.lang = app.translations[ currentLanguage ] || app.translations.en;
Y luego puede escribir código como este:
alert(app.lang.hello);
Opcionalmente, una función o i18n()
gettext()
puede traer un poco de inteligencia, para devolver el texto predeterminado si no existe la clave). Por ejemplo:
function gettext(key)
{
return app.lang[ key ] || app.translations.en[ key ] || "{translation key not found: " + key + "}";
}
Puede hacer que su vida sea mucho más fácil si se deshace del mal hábito de utilizar cadenas literales en su código. Es decir, en lugar de
alert("Some message")
uso
alert($("#some_message_id").text())
donde "#some_message_id" es un div oculto o lapso generada en el lado del servidor.
Como una pista adicional, hay una secuencia de comandos perl llamada po2json que generará json desde un archivo .po.
JSGettext (archived link) es la mejor implementación de la especificación gettext de GNU. Primero descargue el paquete JSGETTEXT e inclúyalo en su página /js/Gettext.js
<?php
$locale = "ja_JP.utf8";
if(isSet($_GET["locale"]))$locale = $_GET["locale"];
?>
<html>
<head>
<link rel="gettext" type="application/x-po" href="/locale/<?php echo $locale ?>/LC_MESSAGES/messages.po" />
<script type="text/javascript" src="/js/Gettext.js"></script>
<script type="text/javascript" src="/js/test.js"></script>
</head>
<body>
Test!
</body>
</html>
código javascript, por ejemplo
window.onload = function init(){
var gt = new Gettext({ 'domain' : 'messages' });
alert(gt.gettext('Hello world'));
}
Como referencia se encontró por debajo de enlace. Está funcionando bien sin convertir el archivo .js a .php.
la respuesta del enlace solo no es buena ya que el enlace puede estar muerto. –
respuesta actualizada con enlace. –
http://www.jsdelivr.com/projects/jsgettext y https://sourceforge.net/projects/jsgettext.berlios/ – miralong
Para implementación de JavaScript de GNU API de gettext estos enlaces pueden ser también útiles:
http://tnga.github.io/lib.ijs
http://tnga.github.io/lib.ijs/docs/iJS.Gettext.html
//set the locale in which the messages will be translated
iJS.i18n.setlocale("fr_FR.utf8") ;
//add domain where to find messages data. can also be in .json or .mo
iJS.i18n.bindtextdomain("domain_po", "./path_to_locale", "po") ;
//Always do this after a `setlocale` or a `bindtextdomain` call.
iJS.i18n.try_load_lang() ; //will load and parse messages data from the setting catalog.
//now print your messages
alert(iJS.i18n.gettext("messages to be translated")) ;
//or use the common way to print your messages
alert(iJS._("another way to get translated messages")) ;
Aunque este enlace puede responder a la pregunta, es mejor incluir las partes esenciales de la respuesta aquí y proporcione el enlace de referencia. Las respuestas de solo enlace no serán de ninguna utilidad si la página vinculada externa cambia en el futuro – Panther
Ok ya está arreglado – tnga
- 1. PHP Gettext - Sin traducción
- 2. variables en PHP gettext
- 3. Traducción del script R con gettext
- 4. gettext traducción no funciona en el sistema de producción
- 5. ¿Qué es bindtextdomain, textdomain en gettext?
- 6. ejemplo completo de gettext en php
- 7. Internacionalización de aplicaciones web Php con Gettext();
- 8. Agregando soporte para i18n en PHP con gettext?
- 9. no puede obtener gettext (php) en Ubuntu trabajo
- 10. PHP: ¿gettext requiere LC_MESSAGES dirs?
- 11. gettext PHP: no todas las cadenas se convierte traducida
- 12. Traducción modelo Django: almacenar traducciones en una base de datos o usar gettext?
- 13. PHP gettext function solo devuelve orignal cadena no traducida
- 14. Los reemplazos de gettext
- 15. PHP y Gettext no funcionan en mi servidor
- 16. múltiples formas plurales en gettext()
- 17. Usando PHP Gettext Extension vs PHP Arrays in Multilingual Websites?
- 18. Alternativas a gettext?
- 19. herencia de prototipos en PHP (como en JavaScript)
- 20. Edición en línea de archivos gettext?
- 21. API de traducción PHP y Bing
- 22. poedit solución para gettext dinámico
- 23. xgettext vs gettext
- 24. alternativa gettext lib en C?
- 25. ¿hay algo así como isset de php en javascript/jQuery?
- 26. ¿Hay un intérprete javascript en el servidor, como php?
- 27. ¿Hay algo así como PHP preg_replace_callback() en javascript?
- 28. JavaScript en el lado del servidor como PHP
- 29. Servicio de traducción de Google para GNU gettext PO archivos que admiten plurales de estilo ngettext
- 30. gettext no traduciendo
¿Puede usted tratar de obtener un ej. y pegarlo en http://pastebin.org? :) – ParisNakitaKejser
@neonman ejemplo de qué exactamente? –
creo que ahora tengo un idé :) tanques de ayuda, lo usaré responsable;) – ParisNakitaKejser