Schrift
[thread]809[/thread]

Mehrsprachigkeit mit Locale::Maketext

Leser: 1


<< >> 10 Einträge, 1 Seite
Superfrank
 2006-09-07 14:49
#8643 #8643
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich mache gerade eine passwortgeschützten Bereich basierend auf cgi::application und html::template und möchte nun mit Locale::Maketext Mehrsprachigkeit hinzufügen. Grundsätzlich funktioniert das auch schon wunderbar, ich sinniere nur gerade darüber wie man die Übersetzungen am Besten aufteilt. Mann könnte für jede Sprache ein großes Lexikon machen oder für jede Seite eine eigene Lexikondatei wohin ich aufgrund der Übersichtlichkeit eher tendiere.

Als Sprachen werden Deutsch,Englisch, Französisch, Spanisch, Holländisch (oder ist es Niederländisch?) verwendet.
Zu Beginn werden es für den passwortgeschützten Bereich ca. 15 Seiten sein wo Kunden z.B. ihre Accountdaten einsehen, Bestellungen vornehmen oder sich Umsatzstatistiken anzeigen können. Wenn das Ding gut läuft wird aber sicher noch einiges an Inhalt und anderen europäischen Sprachen dazukommen.

Hat jemand vielleicht Erfahrungswerte oder Vorschläge für eine sinnvolle Aufteilung?

Viele Grüsse

Frank
GwenDragon
 2006-09-07 15:53
#8644 #8644
User since
2005-01-17
14563 Artikel
Admin1
[Homepage]
user image
Ich würde für jede Seite ein eigenes Lexikon nehmen.
Das ist einfacher zu pflegen, denke ich.
die Drachin, Gwendolyn


Unterschiedliche Perl-Versionen auf Windows (fast wie perlbrew) • Meine Perl-Artikel

pq
 2006-09-07 17:14
#8645 #8645
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
wie baust du die textbausteine in das template ein?
ich plane für CPAN:HTML::Template::Compiled ein translation-plugin.
weiß aber noch nicht genau, wann ich dazu komme.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Superfrank
 2006-09-07 17:46
#8646 #8646
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
hihi, daß ist das nächste worüber ich mir einen Kopp machen muß.

Ich denke ich werde in die html-Templatedatei immer den deutschen Schlüsselwert reinschreiben, der auch der Schlüsselwert in allen Lexika ist (ich wüsste nicht wie es überhaupt ander gehen soll).

Die zu übersetzenden Inhalte stehen in der Templatedatei z.B. so drin:

%%muh%%

und dann muß die Templatedatei (als Stringvariable vorhanden) einmal nach solchen Einträgen mit einem lustigen Regex
durchgelutscht werden und durch den passenden Lexikon-Wert ersetzt werden.

Ich versuche die Inhalte so zu gestalten, daß ich keine Unterscheidung zwischen Einzahl und Mehrzahl brauche.


Ich melde mich nochmal wenn ich was funktionierendes hinkriege, kann aber etwas dauern, da ich nicht so der Perl-Sonderzeichen-Algorithmus-Experte bin.

Viele Grüsse

Frank
pq
 2006-09-07 18:40
#8647 #8647
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
naja, vielleicht wirds ja bald was mit meinem plugin.
dann brauchst du das nicht machen.
geplante syntax: <tmpl_translation id="greeting"> würde dann
gettext("greeting") aufrufen.
keine ahnung, wie ich da noch singular und plural reinkriege, aber das
kann ja später kommen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
renee
 2006-09-08 09:17
#8648 #8648
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Du kannst doch statt id= einfach ein singular= bzw. plural= machen.
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pq
 2006-09-08 12:11
#8649 #8649
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
[quote=renee,08.09.2006, 07:17]Du kannst doch statt id= einfach ein singular= bzw. plural= machen.[/quote]
also ich gebe zu, dass ich davon echt wenig ahnung habe, weil ich einfach
noch nie damit gearbeitet habe, aber so einfach ist es doch nicht,
dass ich singular oder plural allein im template bestimme, oder?
oft kommt ja die zahl auch aus einer variable. zudem weiß ich nicht,
ob singular und plural generell ausreicht. die anzahl 0 würde im deutschen
unter plural fallen, aber wie ist es in anderen sprachen?
des weiteren ist es ein bißchen komplizierter, einem tag mehrere attribute
zu geben anstatt einem pflicht-attribut.
ich hatte eher an ein zusätzliches attribut count gedacht, aber ich muss
mich erstmal in gettext und co einlesen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Superfrank
 2006-09-08 16:17
#8650 #8650
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
ich habs jetzt doch etwas anders gemacht. Erstmal ziehe ich mir das verwendeten Sprachlexikon-Hash in

my %lexicon;

und da für jede Seite ein eigenes Lexikon benutze werden muß nach den zu ersetzenden Ausdrücken nicht mit regex gesucht werden. Ersetzung einfach mit

Code: (dl )
1
2
3
          foreach(keys %lexicon){
$template->param( $_ => $lexicon{$_});
}


Viele Grüsse

Frank
pq
 2006-09-08 16:43
#8651 #8651
User since
2003-08-04
12208 Artikel
Admin1
[Homepage]
user image
Code: (dl )
1
2
3
4
5
6
7
8
9
$template->param(dict => \%lexikon);

# template:
<h1>[%= .dict.title %]</h1>

[%= category_count %] [%= .dict.categories %]:
<ul>
[%loop categories %]
...

find ich sauberer als die ganzen übersetzungen mit den anderen
parametern zu mischen.
Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wiki:Wie frage ich & perlintro Wiki:brian's Leitfaden für jedes Perl-Problem
Superfrank
 2006-09-12 16:55
#8652 #8652
User since
2006-09-05
164 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich werde mir das nochmal angucken.

Jetzt gibt es noch eine Sache die ich nicht verstehe. Mit

Code: (dl )
my $lh = lang::de->get_handle('de_welcome');


läßt sich das Handle erzeugen, nicht aber mit

Code: (dl )
my $lh = lang::de->get_handle('welcome');


In den Modulen ist

Code: (dl )
package lang::de::welcome;


und

Code: (dl )
package lang::de::de_welcome;


der einzige Unterschied. Da bin ich überhaupt erst nach ein paar Stunden draufgekommen...
Ist es möglich die Sprachdatei so zu nennn wie man es selbst möchte?

Viele Grüsse

Frank
<< >> 10 Einträge, 1 Seite



View all threads created 2006-09-07 14:49.