Contenido parla l'Italiano
Interesse angemeldet
Hallo Zusammen
Meine Kunden sprechen oft italienisch, daher wäre ich auch interessiert daran das Backend in Italienisch benutzen zu können und ein Forum in dessen Sprache wäre natürlich auch super!
Wenn man nun noch Spanisch und Französisch hinzufügen würde, wäre das CMS International gesehen extrem tauglich!
Liebe Grüsse
Rodolfo
Meine Kunden sprechen oft italienisch, daher wäre ich auch interessiert daran das Backend in Italienisch benutzen zu können und ein Forum in dessen Sprache wäre natürlich auch super!
Wenn man nun noch Spanisch und Französisch hinzufügen würde, wäre das CMS International gesehen extrem tauglich!
Liebe Grüsse
Rodolfo
Eine neue Französisch -Version ist gerade in Arbeit! Kann aber noch ein paar Tage oder wochen dauern da dies von einer Praktikantin (und mir) so nebenbei erledigt wird.
Es gab zwar schon mal ein Lokalisierungsprojekt für 4.4.4 aber die seite mit dem .po file mit den nach FR übersetzten Strings ist nicht mehr online. (Kann notfalls aber bei mir "angefordert" werden).
Nur ist das aktuelle Release ja 4.6.8, und wir haben festgestellt dass die Anzahl der Strings sich mal aben verdoppelt hat. Also das 4.4.4 er .po File enthält ca 500 zu übersetzende Strings, die 4.6.8 er Version ca 1000.
Daran kann man vielleicht sehen was für ein grosser Schritt der Releasewechsel von 4.4. nach 4.6. eigentlich war. (Wenn man annimmt dass die anzahl zu übersetzender Strings direkt proportional zur gesamtanzahl der Codezeilen ist.)
Der größte Brocken Arbeit ist aber die Übersetzung der Handbücher in weitere Sprachen. Das müßte 4fb machen.
Es gab zwar schon mal ein Lokalisierungsprojekt für 4.4.4 aber die seite mit dem .po file mit den nach FR übersetzten Strings ist nicht mehr online. (Kann notfalls aber bei mir "angefordert" werden).
Nur ist das aktuelle Release ja 4.6.8, und wir haben festgestellt dass die Anzahl der Strings sich mal aben verdoppelt hat. Also das 4.4.4 er .po File enthält ca 500 zu übersetzende Strings, die 4.6.8 er Version ca 1000.
Daran kann man vielleicht sehen was für ein grosser Schritt der Releasewechsel von 4.4. nach 4.6. eigentlich war. (Wenn man annimmt dass die anzahl zu übersetzender Strings direkt proportional zur gesamtanzahl der Codezeilen ist.)
Der größte Brocken Arbeit ist aber die Übersetzung der Handbücher in weitere Sprachen. Das müßte 4fb machen.
Gruss,
Knut
Knut
-
- Beiträge: 1758
- Registriert: Mo 1. Aug 2005, 00:35
- Wohnort: in der schönen Hallertau, mitten im Hopfen
- Kontaktdaten:
vor monaten hatte ich mich angeboten die contenido-translation auf italienisch weiterzuführen ein erstes draft hatte ich bereits erstellt, allerdings kam von 4fb auch auf eine mailanfarge keine antwort. etwas später würde dann auch von timo geposted was stand der dinge ist. mal bisis rückwärts lesen.knb hat geschrieben:... Der größte Brocken Arbeit ist aber die Übersetzung der Handbücher in weitere Sprachen. Das müßte 4fb machen.
Grüsse, Guido
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Was wir nach französisch übersetzen ist die Italienischversion von Forum-User Alessandro, siehe download link in diesem Thread.
Also alle italienischen msgstr "..." Einträge raus, ersetzt durch franz.Übersetzung, und in den Konfig-Metadaten it_IT durch fr_FR ersetzt.
Ich ging einfach davon aus dass diese Version vollständig ist.
Wie vollständig ist die Italienischversion (das .po File) denn nun? Fehlt noch was substanzielles?
Also alle italienischen msgstr "..." Einträge raus, ersetzt durch franz.Übersetzung, und in den Konfig-Metadaten it_IT durch fr_FR ersetzt.
Ich ging einfach davon aus dass diese Version vollständig ist.
Wie vollständig ist die Italienischversion (das .po File) denn nun? Fehlt noch was substanzielles?
Gruss,
Knut
Knut
-
- Beiträge: 1758
- Registriert: Mo 1. Aug 2005, 00:35
- Wohnort: in der schönen Hallertau, mitten im Hopfen
- Kontaktdaten:
ich hatte mit der 4.6.4 begonnen und einen ersten draft erstellt, http://contenido.funjumping.de/front_co ... 7&idart=83, alles weitere habe ich dann aufgrund der aussage con timo eingestelltknb hat geschrieben:Ich ging einfach davon aus dass diese Version vollständig ist.
Wie vollständig ist die Italienischversion (das .po File) denn nun? Fehlt noch was substanzielles?
Grüsse, Guido
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
Die neue französisch-version ist inzwischen komplett übersetzt, aber die Qualitätssicherung dauert noch an.
Scheint unabdingbar zu sein, da ich einige 100 Strings von Google/Babelfish habe übersetzen lassen, und die maschinell generierten Übersetzungen nur zum Teil brauchbar sind. (Je länger der String desto dubioser die Übersetzung. War aber für sich genommen ein ganz interessantes Programmierprojekt.) Diese werden also allmählich von uns noch korrigiert.
Wahrscheinlich muss ich noch mal den Code der 4.6.8.5 neu durchforsten da wohl inzwischen ein paar neue Strings hinzugekommen sind und bei dem Hin-und Hertransferieren zwischen den verschiedenen Editoren ein paar (multiline-) Strings verloren gegangen sein könnten.
Wer ein französisches po- und mo file unbedingt sofort braucht kann sich ja bei mir melden. Das XML File mit Menüeinträgen hatte ich hier im Forum schon mal gepostet.
Ich könnte auch das Script posten das Google, Yahoo, Babelfish Übersetzungen macht, andere Sprachpaarungen als en => fr habe ich noch nicht ausprobiert. Wär doch mal interessant in ein paar minuten ein .po file in Portugiesisch zu erstellen, nicht wahr?! Wäre allerdings ein perlscript.
Scheint unabdingbar zu sein, da ich einige 100 Strings von Google/Babelfish habe übersetzen lassen, und die maschinell generierten Übersetzungen nur zum Teil brauchbar sind. (Je länger der String desto dubioser die Übersetzung. War aber für sich genommen ein ganz interessantes Programmierprojekt.) Diese werden also allmählich von uns noch korrigiert.
Wahrscheinlich muss ich noch mal den Code der 4.6.8.5 neu durchforsten da wohl inzwischen ein paar neue Strings hinzugekommen sind und bei dem Hin-und Hertransferieren zwischen den verschiedenen Editoren ein paar (multiline-) Strings verloren gegangen sein könnten.
Wer ein französisches po- und mo file unbedingt sofort braucht kann sich ja bei mir melden. Das XML File mit Menüeinträgen hatte ich hier im Forum schon mal gepostet.
Ich könnte auch das Script posten das Google, Yahoo, Babelfish Übersetzungen macht, andere Sprachpaarungen als en => fr habe ich noch nicht ausprobiert. Wär doch mal interessant in ein paar minuten ein .po file in Portugiesisch zu erstellen, nicht wahr?! Wäre allerdings ein perlscript.
Gruss,
Knut
Knut
lohnt sich die automatisierte Übersetzung denn trotz Nacharbeitens?
Vielleicht würde damit meine polnische Version also noch in diesem Jahrhundert fertig...
das Script könntest du auf jeden Fall mal zur Verfügung stellen... danke!
Vielleicht würde damit meine polnische Version also noch in diesem Jahrhundert fertig...
das Script könntest du auf jeden Fall mal zur Verfügung stellen... danke!
"Es wird keine Handlung geben, keine Geschichte mit ihrer Versprechung auf einen Anfang und ihrer Hoffnung auf ein Ende." (Andrzej Stasiuk)
von dem was der "Übersetzerwebservice" liefert geht so ca 30% sofort (da viele Strings sehr kurz und eindeutig sind) , 30% mit kleinen Korrekturen und der rest erfordert grössere Korrekturen oder ist ganz unbrauchbar.
Ich hatte Google, Babelfish und Yahoo ausprobiert. Mit Screenscraping, kein Webservice-mit-SOAP-Api.
Fazit: Alle drei benutzen intern die Babelfish-Technologie; Yahoo und Google machen sich noch etwas zusätzliche Arbeit um das Ergebnis aufzuhübschen.
Google ist schnell/blockiert nicht und liefert das am leichtesten zu parsende UTF-8.
Babelfish hat etwas mehr sprachpaare aber ich glaube Polnisch ist auch da nicht dabei.
Yahoo liefert ein UTF-8 zurück mit dem ich nicht zurechtgekommen bin.
Google bietet anscheinend kein Polnisch an, weiss nicht ob Du bei deinem Projekt damit weiterkommst.
Ich hatte Google, Babelfish und Yahoo ausprobiert. Mit Screenscraping, kein Webservice-mit-SOAP-Api.
Fazit: Alle drei benutzen intern die Babelfish-Technologie; Yahoo und Google machen sich noch etwas zusätzliche Arbeit um das Ergebnis aufzuhübschen.
Google ist schnell/blockiert nicht und liefert das am leichtesten zu parsende UTF-8.
Babelfish hat etwas mehr sprachpaare aber ich glaube Polnisch ist auch da nicht dabei.
Yahoo liefert ein UTF-8 zurück mit dem ich nicht zurechtgekommen bin.
Google bietet anscheinend kein Polnisch an, weiss nicht ob Du bei deinem Projekt damit weiterkommst.
Gruss,
Knut
Knut
Hier das erwähnte Perlscript. Im Code wird noch eine Datenbank aufgerufen, das habe ich aber auskommentiert.
Das Script liest hier aus dem DATA Block und schreibt mit Print nach STDOUT. Viele Terminals mit UTF-8 nicht richtig klar kommen, kann die Ausgabe von Zeichen mit Akzent ggf. schlecht aussehen.
Wie gesagt ich habe eine andere Version im Einsatz mit Lesen und Zurückschreiben in Access-DB, und ein zweites Script was aus einem po File liest und ein neues po file schreibt, aber das hab ich gerade nicht hier.
Das Script liest hier aus dem DATA Block und schreibt mit Print nach STDOUT. Viele Terminals mit UTF-8 nicht richtig klar kommen, kann die Ausgabe von Zeichen mit Akzent ggf. schlecht aussehen.
Wie gesagt ich habe eine andere Version im Einsatz mit Lesen und Zurückschreiben in Access-DB, und ein zweites Script was aus einem po File liest und ein neues po file schreibt, aber das hab ich gerade nicht hier.
Code: Alles auswählen
#!/usr/bin/perl
##############################################################################
# read strings from a database, or a __DATA__ section
# get eng-french translations from web services,
# write it back to the database (this code is commented out)
##############################################################################
use strict;
use WWW::Babelfish;
#use DBI;
use DBI qw(:utils);
#use DBD::ADO;
#Win32::OLE->Option( CP => Win32::OLE::CP_UTF8 );
#use Devel::Peek;
# use utf8;
use Text::Unidecode;
use Encode;
use constant NOTRANS => "*** not translated ***";
#database connection; use ADO because it works better with UTF-8
#our $dbh = DBI->connect( "dbi:ADO:Provider=Microsoft." . "Jet.OLEDB.4.0;Data Source=G:\\someDir\\translation-french.mdb" );
#some variables
my ( $i, $j, $c, $u, $sql, $msgid, $msgstr, $srv, $bab_tr, $goog_tr, $yahoo_tr, $sth, $dat );
# what must be translated? we read from a database
#$sql = qq{select ID, msgid , msgstr from [eng-italian] where msgid like "msgid%" order by ID};
#enable slurp mode
undef $/;
# we read from the __DATA__ block
# we are dealing with pairs of strings, eng-fr
# some of which are untranslated
# make a hash of
my $file = <DATA>;
my %str = map { /msgid "(.*)"\nmsgstr "(.*)"/; $1 => $2 } split /\n\n/msi, $file;
#counters
$i = $j = 1;
# count untranslated strings
foreach my $k ( keys %str ) {
$u++ unless $str{$k};
$c++;
}
# the web sites return unicode / utf8, thus make print happy
binmode( STDOUT, ":utf8" );
#translate untranslated strings
#for ( my $j = 0 ; $j < @$dat ; $j++ ) {
foreach my $k ( sort { length($a) <=> length($b) } keys %str ){
#my $k = $dat->[$j]{msgid} ;
#my $id = $dat->[$j]{ID};
$i = sprintf( "%03d", $j );
$j++;
chomp $k;
if ($k) {
$sql = "";
my $id = 0;
print "\n$i of $c ($u total untranslated)\n";
print "\t$k\t" . data_string_desc($k) . "\n";
$srv = "Babelfish";
$bab_tr = translate_string( $k, $srv );
update_db( $srv, qq{"$bab_tr"}, $id);
$srv = "Google";
$goog_tr = translate_string( $k, $srv );
update_db( $srv, qq{"$goog_tr"}, $id );
$srv = "Yahoo";
$yahoo_tr = translate_string( $k, $srv );
#$yahoo_tr = unidecode($yahoo_tr); #remove weird chars
update_db( $srv, $yahoo_tr, $id );
} else {
print "\t### $sql\n";
$sql = "";
}
$k = "";
#print "$k\t$str{$k}\n";
$i++;
}
#######################################
# End of "main program"
#######################################
sub update_db {
my ( $srv, $tr, $id) = @_;
#my $sql = qq{ update [eng-italian] set [msgstr-fr-$srv] = 'msgstr $tr' where ID = $id}; #and [msgstr-fr-google] is null
#$dbh->do($sql) or warn "$srv: can't execute $sql: $! \ndb said: " . $dbh->errstr unless (index($tr, NOTRANS) || $tr =~ /UNAVAIL/i);
print "\t" . data_string_desc($tr) . "\n";
print "\t$srv:\t$tr\n";
#print "\t$sql\n";
}
sub translate_string {
my ( $text, $objstr ) = @_;
# define translator objects
my $obj = new WWW::Babelfish( service => $objstr, agent => 'Mozilla/8.0' );
return "$objstr Translation server unavailable\n" unless defined($obj) && ref($obj) eq "WWW::Babelfish";
my $french_text = $obj->translate(
'source' => 'English',
'destination' => 'French',
'text' => Encode::decode_utf8($text),
'delimiter' => "\n\t"
);
sleep(1);
warn( "Could not translate: " . $obj->error ) unless defined($french_text);
#Encode::_utf8_on($french_text) if $objstr eq "Yahoo";
chomp($french_text);
$french_text =~ s/(?:l')?\s*identification\s+de\s+message\s*//ig; #cleanup
$french_text =~ s/'/''/g;
$french_text =~ s/^(\W+)(.*)$/$1\u$2/; #uppercase first char, even with nonword chars at first position
if ( Encode::is_utf8($french_text) ) {
#Dump $french_text;
#eval{$french_text = Encode::from_to($french_text, "utf8", "iso-8859-15")};
#Encode::_utf8_on($french_text);
#print "$objstr: UTF-8 text found\n";
#Dump $french_text;
} else {
#print "\t $objstr: text not UTF-8\n";
Encode::decode_utf8($french_text); # decode it to utf-8, DBD:ADO wants it this way
}
$french_text ||= NOTRANS;
undef $obj;
#return $dbh->quote($french_text);
return $french_text;
}
#######################################
# test data
#######################################
__DATA__
msgid "OK"
msgstr ""
msgid "Cancel"
msgstr ""
msgid "Colorpicker"
msgstr ""
msgid "Insert Link"
msgstr ""
msgid "Internal link"
msgstr ""
msgid "Please choose"
msgstr ""
msgid "None"
msgstr ""
msgid "PDF"
msgstr ""
msgid "Media"
msgstr ""
msgid "External link"
msgstr ""
msgid "Target"
msgstr ""
msgid "Open in same window"
msgstr ""
msgid "Open in new window"
msgstr ""
msgid "Open in parent frame"
msgstr ""
msgid "Open in top frame"
msgstr ""
Gruss,
Knut
Knut
Gibt es denn schon weitere Sprachen?
Gruß
HerrB
Gruß
HerrB
Bitte keine unaufgeforderten PMs oder E-Mails -> use da Forum!
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
Newsletter: V4.4.x | V4.6.0-15 (Module, Backend) | V4.6.22+
Standardartikelliste: V4.4.x | V4.6.x
http://www.contenido.org/forum/search.php | http://faq.contenido.org | http://www.communido.net
-
- Beiträge: 1758
- Registriert: Mo 1. Aug 2005, 00:35
- Wohnort: in der schönen Hallertau, mitten im Hopfen
- Kontaktdaten:
ich habe immernoch ne 4.6.4 italiano hier rumzuliegen und (auch wenn halber italiener) bräuchte noch 'nen native-italian der das bereinigtHerrB hat geschrieben:Gibt es denn schon weitere Sprachen?
Gruß
HerrB
andererseits habe ich grosses interesse an einer französichen version, falls schon was rumschwirrt
kollege djavet hatte sichper pm angeboten, allerdings habe ich es noch nicht weiter verfolgt
Grüsse, Guido
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams
"A common mistake that people make when trying to design something completely foolproof is to underestimate the ingenuity of complete fools."
Mostly Harmless - Douglas Adams