[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: [ITT] po://aptitude/po/de.po



Am 10.11.2019 um 20:34 schrieb Helge Kreutzmann:

> Hallo Sven,
> On Sun, Nov 10, 2019 at 07:49:25PM +0100, Sven Joachim wrote:
>> Am 10.11.2019 um 19:17 schrieb Helge Kreutzmann:
>> > On Sun, Nov 10, 2019 at 07:03:22PM +0100, Sven Joachim wrote:
>> >> Am 11.03.2018 um 09:02 schrieb Helge Kreutzmann:
>> >> Es sind insgesamt 1585 Zeichenketten, soll ich die ganze Übersetzung auf
>> >> einmal schicken oder lieber in kleineren Portionen?
>> >
>> > Bitte in handlichen Portionen. Wenn die Zeichenketten eher kurz sind,
>> > dann bieten sich so typischerweise 50 Zeichenketten am Stück an, wenn
>> > sie eher länger sind (also größere Absätze), dann eher etwas weniger. 
>> 
>> Die Zeichenketten sind eher kurz, meist nur eine Zeile und praktisch nie
>> mehr als drei Sätze.
>
> Dann kannst Du die Teile ggf. auch etwas größer machen, aber
> vielleicht einfach bei der Größe von 50 Zeichenketten bleiben.
>
>> Gibt es schon ein Tool, das PO-Dateien entsprechend aufteilen kann, oder
>> muss ich mir da selber etwas überlegen?
>
> Ich habe mal mein Skript angehängt. Du legst eine Kopie der Datei an
> und immer dort, wo Du sie trennen möchtest, fügst Du eine Zeile mit
> dem Wort TRENNER ein. (Z.B. in vim mit 50/msgid 50 Zeichenketten
> springen). Ggf. gibt es ja noch schönere/bessere Werkzeuge.

Ich hatte eher an etwas gedacht, was keinen Editor benötigt und die
Datei nach soundsoviel Bytes oder Zeichenketten automatisch splittet.
Ein erster Versuch ist angehängt, aber bedarf sicherlich noch der
Verbesserung.

Sind Häppchen von ca. 20 Kilobyte akzeptabel?  Das wären im Fall von
aptitude etwa 13 Teile.

Viele Grüße,
Sven

#!/usr/bin/perl

use strict;
use warnings;
use open qw< :encoding(UTF-8) >;

$/ = "";

@ARGV or die "Usage: $0 [input-file]";
my $infile = $ARGV[0];
my $input;
open ($input, "<", $infile)
    or die "Could not open file $infile for reading: $!";

my $splitsize = 20000;
my $count = 1;
my $outfile = $infile . "-" . $count;
my $output;
open ($output, ">", $outfile)
    or die "Could not open file $outfile for writing: $!";
while (my $text = <$input>) {
    if (-s $outfile > $splitsize) {
	close ($output);
	$count++;
	$outfile = $infile . "-" . $count;
	open ($output, ">", $outfile)
	    or die "Could not open file $outfile for writing: $!";
    }
    print $output ($text)
	or die "Error writing to $outfile: $!";
}

Reply to: