doc/reference/libpurple/plugin_i18n.xml

Thu, 13 Feb 2020 20:37:12 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 13 Feb 2020 20:37:12 -0600
changeset 40283
99ac77e41427
parent 39374
d6261d7d0c91
child 40962
19e53c9cab73
permissions
-rw-r--r--

Missed some USE_IDN's in the tests

35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
1 <?xml version='1.0' encoding="ISO-8859-1"?>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
2 <!DOCTYPE chapter PUBLIC "-//OASIS//DTD DocBook XML V4.1.2//EN"
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
3 "http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd" [
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
4 ]>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
5 <chapter id="chapter-plugin-i18n">
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
6 <title>Third Party Plugin Translation</title>
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
7
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
8 <sect2 id="plugin-i18n-introduction">
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
9 <title>Introduction</title>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
10
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
11 <para>
21828
1a1c2e5acb3f Some tweaks to grim's plugin translation documentation.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16257
diff changeset
12 For the purpose of this document we're going to assume that your plugin:
1a1c2e5acb3f Some tweaks to grim's plugin translation documentation.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16257
diff changeset
13
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
14 <itemizedlist>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
15 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
16 Is set up to use autotools. It may be possible to add translation support
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
17 without autotools, but we have no idea how. We may not want to know, either ;)
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
18 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
19 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
20 Has an autogen.sh. You may have also called this bootstrap.sh or similar.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
21 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
22 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
23 Resides in a source tree that has <literal>configure.ac</literal> and
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
24 <literal>Makefile.am</literal> in the top-level directory as well as a
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
25 <literal>src</literal> directory in which the plugin's source is located. A
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
26 <literal>Makefile.am</literal> should also exist in the <literal>src</literal>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
27 directory.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
28 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
29 </itemizedlist>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
30 </para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
31 </sect2>
21828
1a1c2e5acb3f Some tweaks to grim's plugin translation documentation.
John Bailey <rekkanoryo@rekkanoryo.org>
parents: 16257
diff changeset
32
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
33 <sect2 id="plugin-i18n-steps">
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
34 <title>Steps to follow</title>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
35
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
36 <para>
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
37 For a plugin to have translation support there are a few steps that need to
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
38 followed:
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
39
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
40 <itemizedlist>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
41 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
42 In your autogen.sh, add the following after your other utility checks:
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
43 <programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
44 (intltoolize --version) &lt; /dev/null &gt; /dev/null 2&gt;&amp;1 || {
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
45 echo;
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
46 echo "You must have intltool installed to compile &lt;YOUR PLUGIN NAME&gt;";
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
47 echo;
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
48 exit;
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
49 }
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
50 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
51 Then before your call to aclocal add:
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
52 <programlisting>
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
53 intltoolize --force --copy
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
54 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
55 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
56 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
57 Now edit configure.ac and add the following:
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
58 <programlisting>
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
59 AC_PROG_INTLTOOL
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
60
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
61 GETTEXT_PACKAGE=&lt;YOUR PLUGIN NAME&gt;
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
62 AC_SUBST(GETTEXT_PACKAGE)
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
63 AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used])
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
64
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
65 ALL_LINGUAS=""
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
66 AM_GLIB_GNU_GETTEXT
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
67 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
68 The position of these macros in the file don't really matter, but if you
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
69 have issues either play around with it or feel free to ask one of the Pidgin
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
70 developers. Finally add 'po/Makefile.in' to you 'AC_OUTPUT' command.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
71 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
72 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
73 Now create a directory named 'po'.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
74 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
75 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
76 'cd' into the 'po' directory.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
77 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
78 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
79 Create/edit the file 'POTFILE.in' in your favorite editor. Each line
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
80 should be the name of a file that could or does have strings marked for
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
81 translating (we're getting to that step). These file names should be
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
82 relative to the top directory of your plugin's source tree.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
83 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
84 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
85 'cd' back to the top directory of your plugin's source tree.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
86 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
87 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
88 Open 'Makefile.am' and add 'po' to your 'SUBDIRS' variable.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
89 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
90 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
91 While still in the top directory of your plugin's source tree, execute
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
92 'intltool-prepare'. This will setup anything extra that intltool needs.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
93 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
94 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
95 Fire off 'autogen.sh' and when it's completed, verify that you have a
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
96 'po/POTFILES' (notice the lack of a .in). If you do, everything should be
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
97 set on the autotools side.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
98 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
99 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
100 Take a break, stretch your legs, smoke a cigarette, whatever, because
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
101 we're done with the autotools part.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
102 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
103 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
104 When you're ready, 'cd' into the directory with the source files for your
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
105 plugin.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
106 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
107 <listitem><para>
37096
a217556e6d41 Fix i18n doc for new plugin API
Ankit Vani <a@nevitus.org>
parents: 36916
diff changeset
108 Open the file containing the 'plugin_query' function.
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
109 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
110 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
111 If you're not already, please make sure that you are including the
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
112 'config.h' file for you plugin. Note that 'config.h' could be whatever
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
113 you told autohead to use with AM_CONFIG_HEADER. Also add the following:
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
114 <programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
115 #include &lt;glib/gi18n-lib.h&gt;
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
116 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
117 Make sure that this include is after you include of your 'config.h',
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
118 otherwise you will break your build. Also note that if you wish to
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
119 maintain compatibility with older versions of GLib, you will need to
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
120 include additional preprocessor directives, which we won't cover here.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
121 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
122 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
123 This is where things get a bit goofy. libpurple is going to try to
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
124 translate our strings using the libpurple gettext package. So we have to
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
125 convert them before libpurple attempts to.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
126 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
127 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
128 To do this, we're going to change the entries for name, summary, and
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
129 description to NULL.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
130 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
131 <listitem><para>
36916
6b417d9c899b Updated plugin_i18n.xml to gtk-doc style
Ankit Vani <a@nevitus.org>
parents: 36908
diff changeset
132 Next, locate your 'plugin_load' function. Your name for this function
6b417d9c899b Updated plugin_i18n.xml to gtk-doc style
Ankit Vani <a@nevitus.org>
parents: 36908
diff changeset
133 may vary, but it's the third parameter to 'PURPLE_PLUGIN_INIT'.
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
134 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
135 <listitem><para>
36916
6b417d9c899b Updated plugin_i18n.xml to gtk-doc style
Ankit Vani <a@nevitus.org>
parents: 36908
diff changeset
136 Now add the following within your 'plugin_load' function:
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
137 <programlisting>
35850
1abeda205d6c cross-win32: make dirs more flexible, add them to the config.h
Tomasz Wasilczyk <twasilczyk@pidgin.im>
parents: 35490
diff changeset
138 bindtextdomain(GETTEXT_PACKAGE, PURPLE_LOCALEDIR);
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
139 bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8");
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
140
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
141 info.name = _("&lt;YOUR PLUGIN NAME&gt;");
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
142 info.summary = _("&lt;YOUR PLUGIN SUMMARY&gt;");
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
143 info.description = _("&lt;YOUR PLUGIN DESCRIPTION&gt;");
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
144 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
145 Note that the _() is intentional, and that it is telling intltool that
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
146 this string should be translated. There is also N_() which says that a
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
147 string should only be marked for translation but should not be translated
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
148 yet.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
149 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
150 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
151 Go through the rest of your code and mark all the other strings for
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
152 translation with _().
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
153 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
154 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
155 When thats done, feel free to commit your work, create your po template
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
156 (pot file) or whatever.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
157 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
158 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
159 To create you po template, 'cd' to 'po' and execute:
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
160 <programlisting>
13401
fc6b025671a8 [gaim-migrate @ 15775]
Gary Kramlich <grim@reaperworld.com>
parents:
diff changeset
161 intltool-update --pot
35490
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
162 </programlisting>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
163 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
164 <listitem><para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
165 To add new translations to your plugin, all you have to do is add the
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
166 language code to the 'ALL_LINGUAS' variable in your configure.ac. Take
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
167 note that this list of languages should be separated by a space. After
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
168 you have added the language code to 'ALL_LINGUAS', drop the xx.po file
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
169 into 'po', and re-'autogen.sh'. After a full build you should now be
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
170 able to use the translation.
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
171 </para></listitem>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
172 </itemizedlist>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
173 </para>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
174 </sect2>
1c4efce838f6 gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents: 21828
diff changeset
175 </chapter>

mercurial