Thu, 13 Feb 2020 20:37:12 -0600
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 | 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 | 37 | For a plugin to have translation support there are a few steps that need to |
| 38 | followed: | |
| 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) < /dev/null > /dev/null 2>&1 || { |
| 13401 | 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 <YOUR PLUGIN NAME>"; |
| 13401 | 47 | echo; |
| 48 | exit; | |
| 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 | 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 | 59 | AC_PROG_INTLTOOL |
| 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=<YOUR PLUGIN NAME> |
| 13401 | 62 | AC_SUBST(GETTEXT_PACKAGE) |
| 63 | AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE, ["$GETTEXT_PACKAGE"], [Define the gettext package to be used]) | |
| 64 | ||
| 65 | ALL_LINGUAS="" | |
| 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 <glib/gi18n-lib.h> |
|
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 | 139 | bind_textdomain_codeset(GETTEXT_PACKAGE, "UTF-8"); |
| 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 = _("<YOUR PLUGIN NAME>"); |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
21828
diff
changeset
|
142 | info.summary = _("<YOUR PLUGIN SUMMARY>"); |
|
1c4efce838f6
gtk-doc-ify C-HOWTO, plugin-i18n, plugin-ids, plugin-signals
Ankit Vani <a@nevitus.org>
parents:
21828
diff
changeset
|
143 | info.description = _("<YOUR PLUGIN DESCRIPTION>"); |
|
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 | 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> |