Linuchs: Platzhalter-Dateien im Echtbetrieb übersetzen?

Moin,

für mein dreisprachiges Projekt konnte ich einen ehrenamtlichen Übersetzer vertaling naar het nederlands finden.

Damit er nicht mit dem HTML-Code belastet wird und mir nicht den Code versehentlich ändert, habe ich ein Programm geschrieben, das nur die dreisprachig vorbereiteten Zeilen zeigt, in denen die Zielsprache angeklickt und übersetzt werden kann:

übersetzen

Die Platzhalter-Datei wird auf dem Server sofort geändert, der Übersetzer kann seine Arbeit im Übersetzungsprogramm und im betroffenen Programm überprüfen.

Problem: Nun ist nicht mehr die Datei auf meinem Entwicklungsrechner gültig, sondern die auf dem Server. Ich darf also nicht zeitgleich daran schrauben, sondern muss für die Zeit, die der Übersetzer braucht, die Finger weg lassen.

Ich könnte womöglich die übersetzte Datei per Mail kommen lassen, aber wie merke ich, dass der Übersetzer arbeitet? Schau nicht ständig auf die Mails.

Gruß, Linuchs

  1. Die Lösung für dieses Problem heißt Versionskontrolle. MFG

    1. @@Emil

      Die Lösung für dieses Problem heißt Versionskontrolle.

      Heißt Git (nicht CVS oder SVN).

      LLAP 🖖

      --
      „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
      „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

      —Marc-Uwe Kling
      1. Die Lösung für dieses Problem heißt Versionskontrolle.

        Heißt Git (nicht CVS oder SVN).

        Git und SVN implementieren eine Versionskontrolle. CVS ist der allgemeine Begriff für die Weiterentwicklung von RCS für den Multiuserbetrieb.

        MFG

        1. Hallo

          Die Lösung für dieses Problem heißt Versionskontrolle.

          Heißt Git (nicht CVS oder SVN).

          Git und SVN implementieren eine Versionskontrolle. CVS ist der allgemeine Begriff für die Weiterentwicklung von RCS für den Multiuserbetrieb.

          „CVS“ ist in diesem Kontext ein konkretes Versionsverwaltungssystem namens Concurrent Versions System, eben CVS.

          Tschö, Auge

          --
          Ein echtes Alchimistenlabor musste voll mit Glasgefäßen sein, die so aussahen, als wären sie beim öffentlichen Schluckaufwettbewerb der Glasbläsergilde entstanden.
          Hohle Köpfe von Terry Pratchett
    2. Die Lösung für dieses Problem heißt Versionskontrolle. MFG

      danke, manchmal reicht ein Stichwort. Bevor ich die Datei überschreibe. sichere ich sie.

      Allerdings bekommt die Kopie das aktuelle Datum/Uhrzeit. Wie kann ich das alte Datum mitsichern?

        $backup_version = 1;
        while ( TRUE ) {
          $backup_filename = $arr_in[url].".bak_".$backup_version;
          if ( file_exists( $backup_filename )) {               // Pruefung, ob backup_version bereits vorhanden
            $backup_version++;
      
          } else {
      
            if ( copy ( $arr_in['url'], $backup_filename )) {
              $_hcopy = TRUE;                 // Hinweis: copy ist erfolgt
              $_h00   =( $_h00 || $_hcopy );
              break;
            } else {
              $_fncopy = TRUE;                 // Fehler: copy fehlgeschlagen
              $_f00   =( $_f00 || $_fncopy );
            }
          }
        }
      
      1. Hallo Linuchs,

        Wie kann ich das alte Datum mitsichern?

        Durch Versionskontrolle, durchgeführt durch ein System wie z.B. GIT. Der speichert pro Version das Checkin-Datum.

        D.h. du erstellt die Sicherungsversion nicht dann, wenn Du die nächste Version änderst, sondern dann, wenn eine Version just frisch fertig ist.

        Wenn Du das lieber zu Fuß machen willst, dann kannst Du beim Checkin einfach den aktuellen Timestamp als Suffix an die Datei hängen (aus foo.php wird foo.php-1565690504 oder foo.php-20190813120217) und sie ins Versionsarchiv kopieren.

        Wenn Du dann irgendwann den Stand zum 13.08.2019 12:00 extrahieren willst, holst Du jeweils die neueste Archivdatei deren Timestamp-Suffix kleiner gleich diesem Datum ist.

        Git kann das von Hause aus.

        Rolf

        --
        sumpsi - posui - clusi
        1. Ich hole mir den alten Zeitstempel mit filemtime und drücke ihn mit touch der Kopie wieder auf.

          1. Korrektur:

            Ich benenne die alte Datei als *.bak um, dann behält sie ihren Zeitstempel. Danach schreibe ich eine neue Datei mit dem ehemaligen Namen.

            Auch noch einen Plattenzugriff gespart ;-)

      2. Allerdings bekommt die Kopie das aktuelle Datum/Uhrzeit. Wie kann ich das alte Datum mitsichern?

        Richtige Dateisysteme kennen atime, ctime und mtime einer jeden Datei. MFG

  2. Lieber Linuchs,

    übersetzen

    Du machst ja noch immer den gleichen >zensiert<...

    Liebe Grüße

    Felix Riesterer

    1. Lieber Felix,

      Du machst ja noch immer den gleichen >zensiert<...

      Ich weiß, wir haben das Thema Mulilingual mehrmals be-schrieben. Seit den 80er-Jahren beschäftige ich mich mit dem Thema, damals noch unter Cobol.

      Hatte damals pro Sprache eine Platzhalter-Datei. Das war sehr unzweckmäßig, weil Änderungen von Texten und Eingabefeldern dann in fünf !!! Dateien zu machen waren. Chaos war gesichert.

      Dann überlegte ich, nur eine Datei zu nehmen und jeder Sprache eine eigene Zeile zu spendieren, wobei PHP nur die betreffenden Zeilen ausliefert in der Form

      @_de| Heute ist [wochentag], der [tt]. [monatsname]
      @_en1| Today is [wochentag], the [tt]th of [monatsname]
      

      Wobei sowas wie Wochentage, Monatsnamen, Feiertage aus der DB geholt wird in der jeweiligen Sprache.

      Letzter Stand seit ca. 10 Jahren für ca. 70 Programme ist die Version mit den Gartenzäunen ###deutsch###english###Nederlands###. Mit explode zerlege ich eine Zeile und setze sie für die Zielsprache wieder zusammen, kein DB-Zugriff nötig.

      1. Lieber Linuchs,

        Letzter Stand seit ca. 10 Jahren für ca. 70 Programme ist die Version mit den Gartenzäunen ###deutsch###english###Nederlands###.

        willst Du es besser machen, oder das historisch Gewachsene rechtfertigen?

        Liebe Grüße

        Felix Riesterer

        1. Lieber Felix,

          willst Du es besser machen, oder das historisch Gewachsene rechtfertigen?

          Um ehrlich zu sein, ich habe das "besser machen" so verstanden, dass die fremdsprachigen und womöglich auch die deutschen Fließtexte nicht mehr im Template stehen?

          Also noch eine Baustelle aufreissen? Und wenn dann de-Texte ersatzlos gestrichen werden, leben sie als "Leichen" weiter? Da wären wir wieder beim Verwendungsnachweis.

          Kannst du bitte mal dein Konzept knapp und oberflächlich erklären? Gerne auch einen Link.

          Gruß, Linuchs

          1. Lieber Linuchs,

            Um ehrlich zu sein, ich habe das "besser machen" so verstanden, dass die fremdsprachigen und womöglich auch die deutschen Fließtexte nicht mehr im Template stehen?

            das ist ein Element, das ich bei Deinem Vorgehen kritisiere.

            Also noch eine Baustelle aufreissen?

            Das ist immer die schmerzhafte Frage, wenn sich ein Konzept in der Zukunft als nicht mehr genügend tragfähig herausstellt.

            Und wenn dann de-Texte ersatzlos gestrichen werden, leben sie als "Leichen" weiter? Da wären wir wieder beim Verwendungsnachweis.

            Wie Du das regelst, überlasse ich Dir. Da meine Projekte in Module gegliedert sind, verwalten diese Module ihre Sprachbausteine selbst. Das begrenzt die Menge an zu überwachenden Karteileichen erheblich.

            Kannst du bitte mal dein Konzept knapp und oberflächlich erklären? Gerne auch einen Link.

            Hatte ich das nicht in Deinem anderen Thread schon genügend getan?

            Liebe Grüße

            Felix Riesterer

      2. @@Linuchs

        @_en1| Today is [wochentag], the [tt]th of [monatsname]
        

        Today is Sunday, the 1th of September

        Ernsthaft?

        LLAP 🖖

        --
        „Man kann sich halt nicht sicher sein“, sagt der Mann auf der Straße, „dass in einer Gruppe Flüchtlinge nicht auch Arschlöcher sind.“
        „Stimmt wohl“, sagt das Känguru, „aber immerhin kann man sich sicher sein, dass in einer Gruppe Rassisten nur Arschlöcher sind.“

        —Marc-Uwe Kling
        1. Today is Sunday, the 1th of September

          Schlechtes Beispiel, ich weiß.

          Hatte auch 3 Zeilen zur Auswahl hingeschrieben mit (1)st, (2)nd, (3)rd, (4)th

          Aber dann fand ich das albern, weil es mit dem Thema nichts zu tun hat. Auch die englische Ausgabe bekommt den Tag. also 13.

          Es ist ein europäischer Kalender. Ist mir egal, wie das im Amazonasgebiet geregelt ist.

  3. Lieber Karl-Heinz,

    Wenn Dein Programm nun jedem HTML-Element eine Uniq-ID geben würde, dann könntest Du die automatische Bearbeitung dadurch unterstützen.

    Du könntest eine Tabelle ID+Text erstellen.

    Mit dem DOM-Parser von PHP ist dies einfach möglich.
    Dann könntest Du auf dem Rückweg die Texte zu den IDs ersetzen lassen.

    Manchmal wird aber trotzdem manuelle Nacharbeit notwendig sein, da andere Sprachen Zusammenhänge auch manchmal syntaktisch anders darstellen.

    Spirituelle Grüße
    Dein Robert

    --
    Möge der Forumsgeist ewig leben!