Ich habe einen Text in Englisch, den ich in Französisch umwandeln möchte.Lokalisieren eines Textes mit gettext
die Sequenz, die i gefolgt sind unter:
- erzeugen gesamten Text im Terminal xgettext Befehl, POT-Datei erstellen
- .PO Datei von POT-Datei
- Schaffung Schaffung .mo Datei aus .po Datei
ich die .mo-Datei kopieren in "/ usr/share/locale/fr/LC_MESSAGES"
hier ist mein Code für main.c Datei:
int main()
{
setlocale(LC_ALL,"");
bindtextdomain("main","/usr/share/locale");
textdomain("main");
printf(gettext("Hello world\n"));
return (0);
}
Wenn ich das Programm der Französisch-Version des Textes auszuführen ist nicht im Terminal ausgedruckt. Was kann der Grund für dieses Problem sein?
Hier ist meine fr.po Datei
# French translations for GNU main package.
# Copyright (C) 2010 THE GNU main'S COPYRIGHT HOLDER
# This file is distributed under the same license as the GNU main package.
#
msgid ""
msgstr ""
"Project-Id-Version: GNU main 0.1\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2010-12-29 10:14+0530\n"
"PO-Revision-Date: 2010-12-29 12:21+0530\n"
"Last-Translator: Lenin\n"
"Language-Team: French\n"
"Language: fr\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=ASCII\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=(n > 1);\n"
#: main.c:29
#, c-format
msgid "Hello world\n"
msgstr "Bonjour tout le monde\n"
Hier mein Anruf von aktuellen Verzeichnis msgfmt ist:
msgfmt -c -v -o main.mo fr.po
Und deine Frage ist? –
@Martin: Sorry vergessen, Frage hinzufügen, wird jetzt bearbeiten. – boom
Bitte zeigen Sie auch Ihre fr.po, und wie Sie msgfmt aufrufen. –