Mercurial > pidgin.yaz
annotate doc/plugin-ids.dox @ 7724:613b20c69d2c
[gaim-migrate @ 8369]
this didn't cause me any problems yesterday, and it compiles, and bug fixing is a good thing.
"Some month ago I introduced translatable texts for "gaim --help" and
"gaim-remote --help".
Unfortunately the output of the translated text is often unreadable.
The problem is, that Gaim's *.po files have the UTF-8 locale (because
this is the default charset for GTK+ 2.0). But the users may have
configured other locales. For instance my SuSE Linux 9.0 system is
configured with LANG=de_DE@euro. "euro" is ISO-8859-1 (Western
character set, 8 Bit, with the Euro currency symbol). Lots of UTF-8
characters are unreadable if they are displayed in a 8 Bit charset
without conversion. Only the 7 Bit chars are displayed right.
There are two possible solutions:
1) Make the console texts untranslatable. This isn't very clever.
2) Convert the texts from UTF-8 to user's locale.
I choose the second solution.
The conversion cannot be made during the translation, because gettext
does not allow a mix of different character sets in one po-file.
My patch converts the console strings from UTF-8 to users locale.
Normally this works right, because most users have a locale which is
compatible with their language.
The case where a user uses a language (for instance German:
LANG=de_DE) with an incompatible character set (for instance the 7Bit
charset LC_CTYPE=C) is also handled. The user then sees a warning and
the original UTF-8 message.
At first I tried to make a new UTF-8 function in src/util.c. But the
function is needed 5 times in src/gaim-remote.c and 2 times in
src/main.c. gaim-remote is not linked against util.o. Also there are a
lot of dependencies from util.o to other files, so I will introduce a
lot of trouble to link gaim-remote against util.o.
So I only wrote a function in src/gaim-remote.c and used the UTF-8
conversion inline in src/main.c." --Bjoern Voigt
committer: Tailor Script <tailor@pidgin.im>
author | Luke Schierer <lschiere@pidgin.im> |
---|---|
date | Wed, 03 Dec 2003 13:21:55 +0000 |
parents | 3c3039aa7259 |
children | cf3eb9f311b2 |
rev | line source |
---|---|
7335 | 1 /** @page plugin-ids Plugin IDs |
2 | |
3 @section Introduction | |
4 Every plugin contains a unique identifier to prevent duplicate plugin | |
5 loading and conflicts. This, which will be called a plugin ID from here | |
6 on, must follow a specific format. This format categorizes a plugin and | |
7 makes duplicate IDs unlikely. | |
8 | |
9 | |
10 @section Format | |
11 The basic format of a plugin ID is as follows: | |
12 | |
13 <tt><i>type</i>-<i>username</i>-<i>pluginname</i></tt> | |
14 | |
15 The @em type indicator specifies the type of plugin. This must be one | |
16 of the following: | |
17 | |
18 - core - Core plugin, capable of being loaded in any program using | |
19 libgaim. It must not use any UI-specific code. | |
20 - prpl - Protocol plugin, providing additional protocols to | |
21 connect to. | |
22 - lopl - Loader plugin, which loads scripts as plugins (like Perl | |
23 or TCL). | |
24 - gtk - GTK+ 2.x plugin. It may use GTK+ code, but cannot use any | |
25 window toolkit code (such as X11 or Win32). | |
26 - gtk-x11 - GTK+ 2.x plugin using X11 code. | |
27 - gtk-win32 - GTK+ 2.x plugin using Win32 code. | |
28 - qpe - Gaim for Qtopia plugin. | |
29 | |
30 The @em username must be a unique identifier for that person. It | |
31 @em should be your Gaim website user ID | |
32 (registered <a href="http://gaim.sourceforge.net/register.php">here</a>). | |
33 If for some reason you cannot register there (it shouldn't be a | |
34 problem!), you can use your SourceForge ID. Do @em not leave this field | |
35 blank. | |
36 | |
37 The @em pluginname is the name of your plugin. It can be whatever you like, | |
38 though it's common to keep it all lowercase. Do not use spaces! If you | |
39 want a space, use a '-'. Please do not put a version indicator in the ID. | |
40 The GaimPlugin structure already has a field for this. | |
41 | |
42 | |
43 @section plugin-db Plugin Database | |
44 Although it doesn't exist yet, in time there will be a plugin database | |
45 on the Gaim website, where users can download and install new plugins. | |
46 Plugins will be accessed by your plugin ID, which is one reason why it | |
47 must be unique. | |
48 | |
49 */ | |
50 | |
51 // vim: syntax=c tw=75 et |