Ajax-Suche in fremdsprachigen Subcats?

Begonnen von dobra, Oktober 06, 2010, 07:37:09

« vorheriges - nächstes »

0 Mitglieder und 1 Gast betrachten dieses Thema.

dobra

Hallo,

ich komme nicht drauf, wie ich die Ajax-Suche "englisch" ausgeben kann :(

schon mal das "Suchvorschläge" übersetzen krieg ich nicht hin
mit
//     Überschrift für die Vorschläge
var m_head = '__language::myprint(text1)__';


kommt das


Wenn ich "Kategorie" übersetzen will

                   s_img = m_ShopRoot + s_img;
                   print_img = 'return Tip(\'<table width=200><tr><td><div><img height=80 border=1 src=&quot;'+s_img+'&quot;></div></td><td><div><b>&nbsp;__language::myprint(kategorie)__:&nbsp;<br>&nbsp;</b>'+addinfo+'</div></td></tr></table>\');';


wird das auch in Klartext (also als "__language::myprint(kategorie)__" ausgegeben.

Und die Kategorie (im Beispiel "SOCKENWOLLE") die sonst automatisch mit gleichnamigem ben.def. Subcat-Feld mit "SOCK YARNS" ausgegeben wird, funktioniert hier nicht.

Für alle, die vielleicht ähnliche Probleme haben:
Als "Notlösung" habe ich die Ajaxsuche erst mal NUR für den en-Shop deaktiviert.

Das geht ganz einfach - in ajaxsearch_identifiers.ipl  oben nach der Zeile
my $gl_use_ajax_search = 1;       # Ein und ausschalten der ajaxsuche (0 | 1)
noch
my $m_lang = $main::RES{"$main::lng-TEXT000"};
if ($m_lang ne "de") {$gl_use_ajax_search = 0;}

einfügen

damit ist die Ajaxsuche für alle nicht deutschsprachigen Subcats ausgeschaltet.

Für Tipps wie ich ajaxsearch auch für fremdsprachige Shops verwenden kann (ohne allzu großen Aufwand  ;)) wäre ich aber dankbar....
mfG
dobra

ahe

Hallo Dobra,

> var m_head = '__language::myprint(text1)__';
Das ist wahrscheinlich in irgendeiner js-Datei angegeben?
Innerhalb von JS-Dateien werden weder SSP-Funktionen noch Identifier unterstützt.

Dazu kann aber die Funktion myprintjsconstants in der language.ipl benutzt und erweitert werden.
Als Beispiel wird im Ursprungszustand der Datei das hier verwendet.

var const_text1 = "|.myget(text1).qq|";

__language::myprintjsconstants__ muss in den Header der HTML-Vorlagen eingebunden werden (BEVOR irgendwelche js-Dateien benutzt werden).
Dann kann man in selbigen zb

var meintext = const_text1;

benutzen.

MfG ahe

dobra

#2
Hallo ahe,

irgendwas mach ich falsch  :(

Habe im head
<head>
__language::myprintjsconstants__
<title>__language::myprint(start_titel)__</title>
...

eingetragen

language.ipl
   text1 => {
       de => 'Suchvorschl&auml;ge:',
       en => 'Search suggestions:',
       fr => 'Suggestions de recherche:',
       it => 'Suggerimenti:',
       se => 'Sökförslag:',
   },
..
..
sub myprintjsconstants {

   my $libjs = "ajax/lib.js";
   if ($main::args[0] =~ /showbynameKundenkonto_/) {
       $libjs = "../ajax/lib.js"
   }

   ## Hier können noch Texte für die JS-Benutzung ausgegeben werden
   main::mprint(qq|
       <script type="text/javascript">
           var const_text1 = "|.myget(text1).qq|";
           var const_lang = "$m_lang";
       </script>
       <script type="text/javascript" src="$libjs"></script>
   |);
}

(original - nix geändert)

und in ajaxsearch_conf.js
var m_head = 'Suchvorschl&auml;ge:';
mit
var m_head = 'const_text1';
(mit ' sonst gehts garnicht) ersetzt

aber jetzt wird statt "Suchvorschlag"  "const_text1" ausgegeben

das   my $libjs = "ajax/lib.js";  muss ich vermutlich auch ersetzen?
aber wie?

my $gl_path_to_ajax = qq|../ajax|; #Pfad zum Ajaxordner
hab's also so versucht
sub myprintjsconstants {

   my $libjs = "../ajax/ajaxsearch.js";

   ## Hier können noch Texte für die JS-Benutzung ausgegeben werden
   main::mprint(qq|
       <script type="text/javascript">
           var m_head = "|.myget(text1).qq|";
           var const_lang = "$m_lang";
       </script>
       <script type="text/javascript" src="$libjs"></script>
   |);
}

und
my $libjs = "../ajax/ajaxsearch_conf.js";
geht aber auch nicht...

im Quelltext stehts aber richtig
        <script type="text/javascript">
            var m_head = "Search suggestions:";
            var const_lang = "en";
        </script>


Nachtrag:
es werden auch nur deutsche Worte gefunden  bzw. deutsche Suchbegriffe angezeigt ???
mfG
dobra

dobra

jetzt hab ich's  :D

in ajaxsearch_conf.js  muß ich das
var m_head = 'const_text1';
LÖSCHEN - also diese Zeile NICHT reinschreiben
sonst wird ja das
__language::myprintjsconstants__
wieder überschrieben.

DANKE ahe

bleibt jetzt nur noch das Problem, dass nur deutsche Begriffe gefunden und angezeigt werden.....
mfG
dobra