Anmelden

Archiv verlassen und diese Seite im Standarddesign anzeigen : [progname]ui.rc - file



msi
07-03-2002, 19:08
hallo, in der [progname]ui.rc file ([progname] ist der Programmname)
stehen ja die Infos über Menüs und Toolbars. Aber wie kann ich es
machen, dass der Text für Menütitels auch mit
i18n übersetzt wird???

anda_skoa
08-03-2002, 13:38
Ich denke, dass dowohl die makefiles, die von KDevelop generiert werden, als auch die, die vom kapptemplate generiert werden, diese Strings genaus extrahieren und in appname.pot zusammen führen, wie die strings, die mit 18n() markiert wurden.

Ciao,
_

msi
09-03-2002, 18:14
das ist ja nicht das problem, ich könnte sie ja auch manuel
eintragen, aber die Texte müssen eben auch übersetzt werden.
wird die i18n funktion dann in der Funktion createGUI für
die Menütitel ausgeführt?

anda_skoa
10-03-2002, 11:18
Ziemlich sicher.
Das wäre sonst ein ziemlicher Bug, der ihnen schon früh aufgefallen wäre :)

ciao,
_

keyoshix
26-06-2002, 21:11
Hi!

Worin liegt dein Problem??? Wohl darin, das du ein KAction Objekt erzeugt hast z.B:

KAction *run = new KAction(i18n("Test"), "remove", Qt::CTRL + Qt::Key_Y, this, SLOT(clear()), actionCollection(), "test_entry");

Und diesen eintrag willst du in eine Menüleiste aka

<!DOCTYPE kpartgui>
<kpartgui name="test1" version="0.1">
<MenuBar>
<Menu name="file"><text>&amp;File</text>
<Action name="test_entry"/>
</Menu>
</MenuBar>
</kpartgui>

einfügen??

Da kann das auch nicht übersetzt werden, da die funktion i18n() nur in compil. Dateien funktioniert. Du musst dann ein KActionMenu Objekt erzeugen und dann das KAction Objekt da einfügen:

KActionMenu *my_options = new KActionMenu(i18n("&Options"), actionCollection(), "my_options");
my_options->insert(run);

und die <appname>ui.rc sieht dann so aus:

<!DOCTYPE kpartgui>
<kpartgui name="test1" version="0.1">
<MenuBar>
<Action name="test_entry"/>
</MenuBar>
</kpartgui>

Und so wird der Menühauptdingens :) auch übersetzt!

anda_skoa
26-06-2002, 22:26
Original geschrieben von keyoshix

Da kann das auch nicht übersetzt werden, da die funktion i18n() nur in compil. Dateien funktioniert. Du musst dann ein KActionMenu Objekt erzeugen und dann das KAction Objekt da einfügen:


Alles was in <text></text> steht wird, wie ich oben geschrieben habe, sicher aus dem ui.rc file extrahiert und in die pot Datei inkludiert.
Damit steht es dann dem i18n Mechnismus zur Verfügung.

Das Menü selber anzulegen geht natürlich auch, aber das ist ja nicht der Sinn der XML GUI Sache.

Ciao,
_