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

Re: [RFR] po://nlme/po/R-de.po



On Thu, May 07, 2009 at 04:59:25PM +0200, Chris Leick wrote:
> Jens Seidel schrieb:
>> Chris Leick wrote:
>>>> Besser von den Autoren zu einer Meldung zusammenfassen lassen. Aber sowas
>>>> willst du nicht mehr berichten?
>>>> Eventuell solltest du einen Patch schicken?

>>> Wie sieht ein Patch aus, bei dem ich ganze 
>>> Zeichenketten  einfach entferne oder zusammenfasse? Mir ist nicht 
>>> klar, wie das  hinterher wieder ins Paket eingebunden wird. Bei den 
>>> R-Paketen sehe ich  nicht die sonst üblichen Referenzen.

>> Der Code:
>> warning(paste("Cannot use smaller level of grouping for",
>>               "\"correlation\" than for \"random\". Replacing",
>>               "the former with the latter."))
>>
>> Ich würde ihn abändern, so dass das paste rausfliegt und am Ende jeder
>> Zeichenkette eventuell ein Zeilenumbruch (\n) einfügen, wenn paste das auch so
>> macht. In C/C++ würde Folgendes OK sein:
>> warning("line1\n"
>>   "line2\n"
>>   "line3\n");
>>
>> Ob R \n unterstützt, oder ob eine Zeichenkette im Quellcode in mehrere
>> kleinere aufgeteilt werden können (wie "line2\n"), weiß ich nicht.
>
> Soweit ich das sehe nicht. \n wird nirgendwo verwendet, stattdessen  
> teilt man kurze Sätze oft in mehrere Strings.

Es scheint zu gehen (kann es so einfach sein??):

http://cran.r-project.org/doc/FAQ/R-FAQ.html:
"7.8 How do file names work in Windows?

As R uses C-style string handling, ‘\’ is treated as an escape character, so
that for example one can enter a newline as ‘\n’. When you really need a
‘\’, you have to escape it with another ‘\’.
"

"7.37 Why does backslash behave strangely inside strings?

The escape sequences ‘\"’ and ‘\n’ represent a double quote and the newline
character respectively. Printing text strings, using print() or by typing
the name at the prompt will use the escape sequences too, but the cat()
function will display the string as-is. Notice that ‘"\n"’ is a
one-character string, not two; the backslash is not actually in the string,
it is just generated in the printed representation.
"

>> Aber es sollte klar sein, dass man auch mit rudimentären R-Kenntnissen, nur
>> die paar Zeilen ändern muss, um die Meldung zu korrigieren.

> Meine Frage war eher, ob danach die Zuordnung der  
> Strings noch stimmt, da die po-Dateien von R keine Referenzen zu den  
> jeweiligen Stellen im Quelltext enthalten. Wenn der Patch eine  
> Zeichenkette streicht, bleibt in der Ausgabe dieser String evtl. leer.

Die Zuordnung der Verweise im Quellcode zu den Zeichenketten in PO-Dateien
sind einzig und allein Kommentare ("#: corStruct.c:449"), die für den
Übersetzer gedacht sind. Auch ohne diese funktioniert die Übersetzung.

Ich vermute, dass gettext von R verwendet wird. Dies sucht zu einer
englischen Zeichenkette in der Übersetzung nach einem passenden Gegenstück.
Wird keins gefunden, wird also die Ausgabe Englisch verbleiben.

Würde man also die R-Datei patchen, so müsste man später die deutsche
Übersetzung aktualisieren. Das könnte man auch in einem Patch kombinieren,
aber das ich eventuell gar nicht nötig.

Wie man die PO-Dateien automatisch an die Zeichenketten im Quellcode anpasst
(so dass neue msgid's hinzukommen, überflüssige entfernt werden) weiß ich
nicht. Das Build-System von R ist mir unbekannt. In einem
autotools-basierten Projekt (die meisten sind es) startet man einfach "make
update-po" im po/-Verzeichnis.

>> Kannst du eine kleine R-Testdatei erstellen, die nur eine Warnung ausgibt
>> und damit experimentieren? So etwas kann leicht der Einstieg in die Welt der
>> Softwareentwicklung sein: ein kleines Problem an dem man arbeitet, bis man
>> immer mehr versteht ...
>>   
>
> Ja. Auch das weiß ich und ich beherrsche sogar einige  
> Programmiersprachen. Was ich nicht kenne, ist der Mechanismus, wie die  
> PO-Dateien in R den richtigen Stellen im Quelltext zugeordnet werden.

In C/C++ funktioniert das mit xgettext, was von "make update-po" gestartet
wird. Hier müsste man die Bauabhängigkeiten von nlme nach etwas ähnliches
suchen. /usr/share/R/debian/r-cran.mk scheint ein Makefile für R zu sein,
dass beim Bau von debian/rules verwendet wird ...

Jens


Reply to: