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

Re: 80-Zeichen breites Terminal



Hallo Sven,

On Sun, Aug 06, 2006 at 05:27:44PM +0200, Sven Joachim wrote:
> Hallo Jens,
> einiges in deiner Mail habe ich nicht verstanden. :-(

OK, dann lass mich erklären.

> Jens Seidel schrieb:
> 
> >Hier wäre eindeutig das Programm gefragt. Wäre es richtig lokalisiert
> >(oder internationalisiert?), so würde es Zeilenumbrüche automatisch
> >vornehmen, ebenso die Ausgabeformatierung handhaben (durch Verwendung
> >spezieller Steuerzeichen, die eine konsistente Einrückung bei Listen
> >z.B. automatisch sicherstellen).
> 
> Wie stellst du dir das vor? Etwa mit Tabulatorzeichen und ähnlichem?

Zum Beispiel. Ich dachte aber eher an programmspezifische Steuerzeichen.
aptitude verwendet %B zum Einleiten fetter Texte, %b zum Beenden. Analog
könnte man weitere solche Steuerzeichen einführen wie z.B. %I für den
Anfang eines (eventuell eingerückten) Menüpunktes, ...

Für
 * Punkt 1 (dieser ist sehr
   sehr lang)
 * Punkt 2
könnte man
"%IPunkt 1 (dieser ist sehr sehr lang)%IPunkt 2"
als Vorlage haben. Eine Übersetzung könnte so leicht auch aus zwei
Punkten mehrere machen, eventuell Trennhilfen vorgeben (wie sieht dies
z.B. bei japanischen Texten aus :-), ... und das ganze unabhängig von
der Textbreite.

> Ich sehe vor allem das Problem, dass die Länge der (Fehler-)Meldung
> unbekannt ist, sobald Format-Strings mit %s und dergleichen ins Spiel
> kommen. Immerhin kann ein Dateiname bis zu 255 Zeichen, ein vollständiger
> Pfadname sogar beliebig lang werden.

Dann muss man die Ausgabe eben mit einer (eigenen) Funktion wie
wrap(const char*) kapseln, welche den Text an Leerzeichen nach maximal n
(variabel) Zeichen umbricht. Du hast Recht, dass es mit extremen Strings
natürlich Probleme geben könnte.

> >Ich würde also sagen, dass bei Problemen dieser Art ein Fehlerbericht zu
> >senden ist und die Übersetzung dies ignoriert.
> >Dummerweise glaube ich, dass viele, viele Programme davon betroffen
> >wären.
> 
> So ziemlich alle sogar (jedenfalls die, die stdio-Funktionen verwenden).

OK. Andererseits kann man wohl von einer minimalen Konsolenbreite
ausgehen. Kleine Texte < 80 Spalten muss man dann nicht gesondert
betrachten.

> >Andererseits kann die Lösung auch (wenn man auf spezielle
> >Formatierung verzichtet) ziemlich trivial sein.
> 
> Nämlich wie?

Eine kleine Wrapper-Funktion um die Ausgabefunktion.

> >Eventuell könnte man den
> >Code auch in eine gebräuchliche Bibliothek auslagern ...
> 
> So eine Art »foldprintf« Funktion, welche rechtzeitig umbricht? In den
> coreutils müsste der Code dazu schon stehen, siehe »fold -s«.

Ganz genau etwas in der Art ...

PS: Tut mir leid, dass ich deine dpkg-Übersetzung nicht korrekturgelesen
habe. Die Bemerkungen über die Länge haben mich abgeschreckt, außerdem
gab es ja einige andere Kommentare. So habe ich viele Stunden mehr für
anderes gehabt ...

Jens



Reply to: