Ankündigung

Einklappen
Keine Ankündigung bisher.

Globale Funktion liefert kein return Wert

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Globale Funktion liefert kein return Wert

    Hey ich habe eine globale Funktion geschrieben die mir aus einer .txt die passende Übersetzung raussucht, wenn ich das Ergebnis mit console.log Ausgebe, dann passt alles - möchte ich jedoch den Wert mit return verarbeiten bekomme ich ein undefined. Hier ist die Funktion:
    PHP-Code:
    $.Translate = function(languagefiletext){
            var 
    languageArrayisplitLanguage;
            var 
    translation "test";
            var 
    found false;
            $.
    ajax({
                
    url:'http://dev.test.de/languages/'+language+'/'+file+'.txt',
                
    type:'GET',
                
    error: function(data)
                {
                    
    translation text;
                },
                
    success: function(data){
                    
    languageArray data.split('\n');
                    for (
    0languageArray.length; ++i) {
                        
    splitLanguage languageArray[i].split("=");
                        if(
    splitLanguage[0] == text){
                            if(
    splitLanguage[1] == ""){
                                
    translation splitLanguage[0];
                            }else{
                                
    translation splitLanguage[1];
                            }
                            
    found true;
                        }
                    }
                    
                    if(
    found == false){
                        
    translation text;
                    }
                }
            }).
    done(function() {
                
    console.log(translation)
                return 
    translation;
            });
            
        }

    //Aufruf

    $('#loginBtn').html($.Translate("en_EN""uploader""anmelden")); 
    kann mir bitte jemand sagen warum der return Wert undefined ist?

    Viele Grüße und Dankeschön!


  • #2
    Ajax ist asynchron, deine Funktion ist nur ein Eventhandler. Alles weitere wirst du innerhalb diesen machen müssen.
    Zitat von nikosch
    Macht doch alle was Ihr wollt mit Eurem Billigscheiß. Von mir aus sollen alle Eure Server abrauchen.

    Kommentar


    • #3
      Versuch mal sowas:
      PHP-Code:
      $('#loginBtn').html(function() {return $.Translate("en_EN""uploader""anmelden")}); 

      Kommentar


      • #4
        Tip: schmeiss den Code weg, benutz was fertiges. Hier ein kleiner Auszug an fertigen Alternativen:

        https://github.com/fnando/i18n-js/bl...cripts/i18n.js
        https://github.com/jquery/globalize#getting_started
        https://github.com/i18next/i18next
        http://dojotoolkit.org/reference-gui...dojo/i18n.html

        Alternativ lade die Übersetzungen per json (und nicht als Text), verwende ein einfaches Javascript Plain Objekt und mach sie irgendwie verfügbar, bspw. unter deinem app namespace.
        I like cooking my family and my pets.
        Use commas. Don't be a psycho.
        Blog - CoverflowJS

        Kommentar


        • #5
          Du mußt anstatt den Wert mit return zurückzugeben, den Wert auf den Button "schreiben".
          .prop(), .attr() oder .val() sollte Dir weiterhelfen...
          Competence-Center -> Enjoy the Informatrix
          PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

          Kommentar

          Lädt...
          X