0

tl/dr: Wie kann ichZugang Sprache JSON-Datei mit JS auf Chrome ohne einen Webserver

  • internationalisieren Strings in einem html5/javascript Anwendung
  • während einer JSON-Datei oder etwas ähnliches mit Schlüssel/Wert mit Paare (leicht zu übersetzen)
  • ohne Javascript mit vars für jede Sprache string (hässlich)
  • und, wenn möglich, ohne dabei komplexe Strukturen oder Pakete
  • auf Chrome (oder etwas mit dem gleichen Ursprungs-poli cy)
  • ohne (lokal) Webserver
  • ohne Internetverbindung

Details:

Ich bin ein html5 Touch-Spiel für älteres useres auf einem Embedded-IE-System zu entwickeln, die auf einem geändert werden Embedded-Chrom-System bald. Die Nutzung eines Webservers ist derzeit nicht möglich und ich kann nicht davon ausgehen, dass ich ständig eine Internetverbindung habe. Da die Anwendung in verschiedenen Sprachen sein sollte, ich derzeit eine JSON-Datei, die wie folgt (irrelevant Sachen weggelassen) zugegriffen wird:

//... 
var language = "en"; //the language we want, same as the json file name 
var key = "key"; //the key to the value we like to obtain 

var languageMap; 
var langFile = $.getJSON(language + ".json", function(data){ 
    languageMap = data; 
}); 
var langFileStatus = $.when(langFile); 
langFileStatus.done(function() { 
    var value = languageMap[key]; 
    //use the value of "key" here for awsome stuff 
}); 
//... 

die Sprachdatei (zB „en.json“) sieht wie folgt aus:

das funktioniert ziemlich gut für IE und FF, aber nicht auf Chrome, wegen der gleichen Herkunft-Politik. Ich habe von einem tollen Trick gelesen, um das here zu umgehen, aber ich konnte es in diesem Fall nicht schaffen. Ich habe JSON noch nie zuvor in Verbindung mit JS benutzt, also ist es vielleicht eine einfache Frage. Verschiedene Lösungen für das gesamte Problem sind ebenfalls sehr willkommen (deshalb habe ich das komplette Problem veröffentlicht). Danke im Voraus!

+0

nicht möglich. '$ .get' und verwandte Funktionen führen Ajax-Anfragen aus, was bedeutet, dass sie HTTP-Anfragen ausführen, was bedeutet, dass Sie einen Webserver brauchen, um diese HTTP-Anfragen zu bearbeiten. Standard-Client-JS hat keine Möglichkeit, auf das Dateisystem zuzugreifen oder Dateien zu laden. Sie könnten ein '