Sto usando gettext
nel mio codice PHP, ma ho un grosso problema. Tutti i miei file JavaScript non sono influenzati dalla traduzione, qualcuno può dirmi un modo semplice per ottenere le traduzioni nella lingua scelta anche in JavaScript.Traduzione in JavaScript come gettext in PHP?
risposta
Il modo più semplice è avere un file PHP scrittura le traduzioni da gettext
in variabili 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"); ?>"
e poi includerlo: (!, Che sono molto interessanti)
<script type="text/javascript" src="js_lang.php"></script>
consiglierei anche questo metodo in combinazione con la traduzione plugin S.Marco menzioni .
Puoi anche definire il dizionario nell'intestazione della pagina corrente, senza includere un file esterno, ma in questo modo, dovresti cercare e inviare i dati su ogni caricamento di pagina - abbastanza inutile, come un dizionario tende a cambia molto raramente.
prova, jQuery i18n o jQuery localisation
Un esempio per jQuery i18n, e, naturalmente, è necessario generare dizionario basato JSON dal file della lingua da PHP
var my_dictionary = {
"some text" : "a translation",
"some more text" : "another translation"
}
$.i18n.setDictionary(my_dictionary);
$('div#example').text($.i18n._('some text'));
ho nevere tryt che, e la sua ritornassi in combinasion Pentecoste JSON, avvisi e altro ancora. – ParisNakitaKejser
o si potrebbe provare http://i18next.com viene fornito con il convertitore gettext to json aggiuntivo. ed è completo. – jamuhl
Io generalmente esportare le traduzioni in una struttura JavaScript:
var app = {}
var app.translations = {
en: { hello: "Hello, World!"
, bye: "Goodbye!"
}
, nl: { hello: "Hallo, Wereld!"
, bye: "Tot ziens!"
}
};
La lingua corrente dei testi della pagina può essere definita utilizzando: <html xml:lang="en" lang="nl">
Questo può essere letto in JavaScript:
var curentLanguage = document.documentElement.lang || "en";
app.lang = app.translations[ currentLanguage ] || app.translations.en;
E quindi è possibile scrivere codice come questo:
alert(app.lang.hello);
Opzionalmente, una funzione o i18n()
gettext()
può portare un po 'di intelligenza, di restituire il testo predefinito se la chiave non esiste). Ad esempio:
function gettext(key)
{
return app.lang[ key ] || app.translations.en[ key ] || "{translation key not found: " + key + "}";
}
È possibile semplificare la vita se si elimina la brutta abitudine di utilizzare letterali stringa nel codice. Cioè, invece di
alert("Some message")
uso
alert($("#some_message_id").text())
dove "#some_message_id" è un div nascosti o luce generati sul lato server.
Come ulteriore suggerimento c'è uno script perl chiamato po2json che genererà json da un file .po.
JSGettext (archived link) è la migliore implementazione della specifica gettext di GNU. Prima scaricare il pacchetto JSGETTEXT e includerlo nella tua pagina /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>
codice javascript per esempio
window.onload = function init(){
var gt = new Gettext({ 'domain' : 'messages' });
alert(gt.gettext('Hello world'));
}
Per avere un riferimento di seguito trovate collegamento. Funziona bene senza convertire il file .js in .php.
la risposta al solo collegamento non è buona perché il collegamento potrebbe essere morto. –
risposta aggiornata con link. –
http://www.jsdelivr.com/projects/jsgettext e https://sourceforge.net/projects/jsgettext.berlios/ – miralong
Per implementazione di JavaScript GNU gettext API questi collegamenti possono essere utili anche:
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")) ;
- 1. PHP Gettext - Nessuna traduzione
- 2. completo di gettext in php
- 3. Le variabili in PHP gettext
- 4. Django Traduzione JavaScript non funziona
- 5. Che cos'è bindtextdomain, textdomain in gettext?
- 6. Aggiunta del supporto per i18n in PHP con gettext?
- 7. Come segnare una traduzione vuota (msgstr) come tradotta in file po gettext?
- 8. traduzione gettext non funziona sul sistema di produzione
- 9. Internazionalizzazione delle applicazioni Web PHP con Gettext();
- 10. PHP: gettext richiede dirs LC_MESSAGES?
- 11. Utilizzare PHP Gettext senza dover installare locali
- 12. Flask-Babel come utilizzare la traduzione in file modello Jinja
- 13. gettext, come gestire gli omonimi?
- 14. gettext PHP: non tutte le stringhe diventa tradotto
- 15. Gettext senza un filesystem
- 16. Django traduzione JavaScript catalogo vuoto (i18n/jsi18n)
- 17. Molteplici forme plurali in gettext()
- 18. ricambi per gettext
- 19. Alternative a gettext?
- 20. Django i18n: c'è un'alternativa gettext?
- 21. traduzione di un sito web in php o mysql?
- 22. Esecuzione javascript in PHP
- 23. Traduzione di PHP in Python (connessione Rest-API)
- 24. xgettext vs gettext
- 25. Utilizzo di PHP Gettext Extension vs matrici PHP in siti Web multilingue?
- 26. soluzione alternativa per gettext dinamico
- 27. come posso javascript decodeURI in PHP?
- 28. gettext not translating
- 29. API di traduzione PHP e Bing
- 30. Funzione Javascript in PHP fromCharCode()
puoi provare a maby per ottenere un esempio. e incollarlo su http://pastebin.org? :) – ParisNakitaKejser
@neonman esempio per cosa esattamente? –
penso di avere un idé ora :) carri armati per aiuto, userò le tue risposte;) – ParisNakitaKejser