Ankündigung

Einklappen
Keine Ankündigung bisher.

String mit Hilfe von str_replace() ersetzen

Einklappen

Neue Werbung 2019

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

  • String mit Hilfe von str_replace() ersetzen

    Hallo liebe Gemeinde,

    ich hbae mit hilfe von Wordpress ein Formular erstellt und aus den eingaben wird ein PDF Dokument generiert.
    Das Dokument in dem die Eingben verarbeitet werden, ist mit php geschreiben.

    Ein Kunde von mir wünscht nun eine Übersetzung ins Englische. Soweit hat das auch super geklappt und jetzt hänge ich dabei einen string umzuwandeln.
    Ich habe folgenden code geschreiben:
    PHP-Code:
    if (!empty($form_data['field'][93])) {
      
    $nautische_geraete implode", "$form_data['field'][93] );
      
    $nautische_geraete_de = array('Autopilot''Bordcomputer',     'Bordtelefon',   'Echolot''Echolot mit Tochter',  'Fishfinder''Gegensprechanlage','GPS','GPS mit Tochter',  'Grenzwellenempfänger',  'Kartenplotter','Kompass','Kompass mit Tochter''Radar','Selbststeueranlage','Sumlog','Sumlog mit Tochter','UKW-Funk','Wetterfaxempfänger','Wetterfunkempfänger','Wetterkartenschreiber','Windmessanlage');
      
    $nautische_geraete_en = array('Autopilot''Onboard Computer''Onboard Phone''Sonar',    'Sonar with Daughter''Fishfinder''Intercom',         'GPS','GPS with Daughter','Boundary Wave Receiver','Chartplotter''Compass','Compass with daughter','Radar','Self control system','Sumlog','Sumlog with daughter','VHF radio','Weather fax receiver','Weather radio receiver','Weather chart recorder','Wind measuring system');
      
    $nautische_geraete_ausgabe str_replace($nautische_geraete_de$nautische_geraete_en$nautische_geraete);

    Das $form_data['field'][93] ist mehrdimensionales Array welches die Daten aus dem Checkboxgruppe beinhaltet.

    Als Ausgaeb erhalte ich folgendes: Autopilot, Onboard Computer, Onboard Phone, Sonar, Sonar mit Tochter, Fishfinder, Intercom, GPS, GPS with Daughter, Boundary Wave Receiver, Chartplotter, Compass, Compass mit Tochter, Radar, Self control system, Sumlog, Sumlog with daughter, VHF radio, Weather fax receiver, Weather radio receiver, Weather chart recorder, Wind measuring system

    Die Übersetzung funktioniert wie gewünscht nur wird ,Sonar mit Tochter und Kompass mit Tochter nicht richtig übersetzt. Warum? Es funktioniert doch bei GPS mit Tocher doch auch.

    Kann mir jemand Helfen, dass ich dieses Problem gelöst bekomme?

    MFG Helmuff


  • #2
    Dein Problem ist, dass du mit implode() alle Daten zusammenwürfelst, bevor du sie verarbeitest. Du brauchst weder implode(), noch str_replace() dafür.

    Kommentar


    • #3
      Du must die Reihenfolge in den Arrays ändern. 'Echolot mit Tochter' muss vor 'Echolot' kommen. Bei GPS geht das nur, weil im Eng. es bei GPS bleibt.

      Kommentar


      • #4
        Hallo,

        hast du vielleicht eine Tipp für mich wie ich das ganze besser angehen kann?

        Kommentar


        • #5
          Wenn du bei der Generierung der Checkboxen einheitliche Schlüssel benutzt (value-Attribut), dann kannst du den Inhalt je nach Sprache laden und brauchst keine Übersetzung der Eingabe.
          Bin mir aber nicht sicher, ob dies auch dein Problem ist.

          Kommentar


          • #6
            Die einzelnen Checkboxen habe alle einen anderen Value-Attribut.
            HTML-Code:
            <li class="gchoice_1_93_2">
                                            <input name="input_93.2" type="checkbox" value="Bordcomputer" id="choice_1_93_2" tabindex="229">
                                            <label for="choice_1_93_2" id="label_1_93_2">Bordcomputer</label>
                                        </li><li class="gchoice_1_93_3">
                                            <input name="input_93.3" type="checkbox" value="Bordtelefon" id="choice_1_93_3" tabindex="230">
                                            <label for="choice_1_93_3" id="label_1_93_3">Bordtelefon</label>
                                        </li>

            Kommentar


            • #7
              Du solltest nicht den Text als Wert übergeben, sondern einen eindeutigen Schlüssel. Zum Beispiel eine Datenbank-ID, ein Array-Index, etc. Jedenfalls irgendwas sprachenunabhängiges.

              Kommentar


              • #8
                Die einzelnen Werte kann ich der Checkboxen kann ich so
                PHP-Code:
                $form_data['field'][93][0
                anzeigen.

                Kommentar


                • #9
                  Zitat von Helmuff Beitrag anzeigen

                  HTML-Code:
                  <input name="input_93.2" type="checkbox" value="Bordcomputer" id="choice_1_93_2" tabindex="229">
                  ...
                  <input name="input_93.3" type="checkbox" value="Bordtelefon"
                  ...
                  Die einzelnen Werte kann ich der Checkboxen kann ich so
                  PHP-Code:
                  $form_data['field'][93][0
                  anzeigen.

                  Als Ansatz ... Kannst du gleich mit 93 davor machen, oder auch nicht, je nachdem ob das für andere Felder später auch noch kommt etc..

                  PHP-Code:
                  $itemNames = [
                      
                  93 => [
                          
                  => [
                              
                  'de' => 'Bordcomputer',
                              
                  'en' => 'Bordtelefon',
                              
                  // ...
                          
                  ],

                          
                  => [
                              
                  'de' => 'Onboard Computer',
                              
                  'en' => 'Onboard Phone',
                              
                  // ...
                          
                  ]
                      ]    
                  ];

                  echo 
                  $itemNames[93][3]['de'];
                  echo 
                  $itemNames[93][3]['en']; 
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Sorry ich bin noch anfänger...

                    Ich brauch da etwas mehr Hilfe... Angenommen in $form_data['field'][93][1] ist der wert Autopilot drin.
                    Autopilot wird durch das Formular übergeben. Nun soll dieser Wert im PDF in Übersetzter Form angezeigt werden.

                    Grundsätzlich habe ich das auch hinbekommen mit einer Funktion
                    PHP-Code:
                    function uebersetzen($original$uebersetzung){
                      if (!empty(
                    $original)) {
                        echo 
                    $uebersetzung;
                        echo 
                    ", ";
                      }

                    So kann ich jeden einzlenen Wert übersetzen. Jetzt müssen aber nocjh Kommas zwishcne die Werte...

                    Kommentar

                    Lädt...
                    X