From 3736c5f3635863e54ab2cc47860628d26855c749 Mon Sep 17 00:00:00 2001 From: "Suren A. Chilingaryan" Date: Thu, 11 Aug 2005 01:06:56 +0000 Subject: Transliteration and Documentation Update - Fix: Autodetection of dissabled charsets. - Fix: Cleanely terminate external process if parrent thread terminated. - Transliteration for Russian, Ukrainian and using IConv. - Documentation Update. --- README | 162 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 158 insertions(+), 4 deletions(-) (limited to 'README') diff --git a/README b/README index 6a47827..5a13638 100644 --- a/README +++ b/README @@ -1,7 +1,161 @@ +RusXMMS Project +=============== -Language Autodetection ----------------------- +Originally, the project was aimed to provide means to work with multiple encodings +of the same language through adapting encoding of ID3 tags, M3U and PLS playlists +(including file names) to local settings on-the-fly. Both the tag reading and +writing back using any selected encoding was supported. +Nowadays there are library available providing the same functionality for almost +any program with just a few lines of code. The library is not limited to ID3 tags, +it can be useful for any program working with small titles or file names in +different languages and encodings. The patches for several music players, ID3 tag +libraries and some other programs are available on the project page. +The Abilities of LibRCC Library +=============================== -Translation ------------ + * Language Autodetection + * On the fly translation between languages, using online-services! + * Encoding Autodetection for most of European Languages1 + * Support for encoding detection plugins (besides Enca and LibRCD) + * Recoding/translation of multi-language playlists! + * Cache to speed-up re-recoding. + * Possibility to configure new languages and encodings. + * Shared configuration file. For example mentioned TagLib and LibID3 patches + do not have their own user interface, but will utilize the same recoding + configuration as XMMS. + * As well the separate program for configuration adjustment is available. + * GTK/GTK2 UI Library: you can add properties page to your GTK application + with 3 lines of code. + * Menu localization opportunity + +The Available Patches +===================== + + * RusXMMS: Visualization and editing of the whole range of ID3 tags using any + of eight byte or unicode encodings. Support for playlists with non-english + filenames. The translation of foreign languages to english or locale one is + supported as well. The embeded properties page. The patch makes XMMS the best + player to work with ID3 titles. + * TagLib: Visualization and editing of ID3 v.1 and v.2 titles. Any TagLib + based application will correctly work with ID3 tags out of the box. The + properties page can be added to application with several lines of code. + Additionaly, after applying the patch, the 'tagwriter' program from the + TagLib examples can be used to convert titles of all your MP3 files to + unicode ID3 v.2 tags just using command: "tagwriter *.mp3". + * LibID3: Visualization of ID3 v.1 and v.2 titles. Any LibID3 based + application will correctly display (but not edit) ID3 tags out of the box. + * Mpg123: Visualization of ID3 v.1 titles. + * GFtp: Recoding file names between FTP servers using different encodings. + * Unzip: Recoding file names from Windows created archives. + + +Gratitudes +========== + * Me ;) + * Michael Shigorin - Ideas and great help in wiping bugs + * Dmitry A. Koptev - Slackware packages + * IPE, ForschungsZentrum, Karlsruhe + * CRD, Yerevan Physics Institute + * Georgian and Spanish winemakers :) + +Important Notes +=============== + +1. It have much more sense to report problems here, then just claiming nothing is + working on miscellaneous forums and mailing lists. +2. If you want patches presented here to be included in the correspondent project + trees, please, ask authors. The same thing should be concerned about inclusion + of LibRCC and LibRCD in the official Gentoo portage tree. +3. Most of the patches will modify configure.in and Makefile.am files, so the full + autoconfiguration should be performed. + You should run "aclocal; automake; autoconf" prior to using configure script. +4. Output encoding normally must correspond to current "LC_CTYPE" locale. If + you would set it to another value without really knowing what are you doing, + it can raise problems. + +Preferences +=========== + + * Current Language. The English, Russian, Ukrainian, Belarussian, Bulgarian, + Czech, Estonian, Croatian, Hungarian, Lithuanian, Latvian, Polish, Slovak, + Slovenian and Chinese are embeded in the library. To get other languages you + should configure them in the "/etc/rcc.xml" or in user-defined configuration + "~/.rcc/rcc.xml". By default the language will be determined using LC_CTYPE + environmental variable. + * Current encoding for supported encoding classes. For RusXMMS the following + classes are defined: + o ID3 Encoding + o ID3 v.2 Encoding (uses ID3 by default) + o PlayList Encoding (uses ID3 by default) + o Encoding for Filenames in the Playlists (defaults to FS encoding) + o FileSystem Encoding (uses locale encoding by default) + o Output Encoding (uses locale encoding by default) + The default encoding will be resolved using: + o The unicode encoding selected for english language. + o The encoding of the parrent class if any. + o The unicode encoding defined by locale variable or any locale encoding + in the case of locale language is used. + o First available usable encoding. + * Encoding autodetection engine. First available is used by default. + * Mode for recoding cache: + o Off: Do not use recoding cache + o On: Use recoding cache to find out encoding and language + o ReLearn: Fill recoding cache with detected values + o Learn: Try to use recoding cache to find out encoding. If there are + no cached encoding for current title try to detect it and store in the + cache. + * Autodetect File Name: If option is switched on the encoding of the file + will be resolved using search over file system. + * Autoengine Set Current Encoding: Encoding autodetection engine will + automatically set detected encoding to be used by default. + * Autodetect Language: Try to autodetect used language. Quite slow. + * Translate Text: Translate text from detected language to the locale + language. Very slow and requires internet connection. The different modes is + available. In the full mode the string will be translated to the current + locale language. If translation to locale language is failed, the string will + be translated to english. With "Skip Related" and "Skip parrent" options the + translation between related languages will be omited (The language is + considered to be parrent language in the case then it is expected to have + words from that language in the strings of child language. The english + language is considered to be parrent language for any other.). + With "Translate to English" option it is possible to translate all strings + to english. + * Since the translation is slow, it is possible to limit maximum time used to + recode/translate string. In this case if translation in the specified amount + of time is not finished, untranslated string will be returned. However, the + string will be queued for translation and in the next access the translated + and cached value will be returned. + * Additionally, for RusXMMS only it is possible to specify font used by shade + form of xmms playlist. + +Using Multi-Language Playlist +============================= +There are two ways of using multi-language playlists. The first is to use +Language autodetection: + + * The UTF-8 locale should be set. + * The LibRCC should be compiled with aspell support. + * The aspell dictionaries for all languages used should be installed. + +However this is quite slow, and errnous in the cases then mostly non-dictionary +words are used. The second option, is to use recodings cache: + + * The UTF-8 locale should be set. + * Select "Learn" mode for recoding caching policy in the preferences prior + to loading new files. + * Afterwards the titles for the loaded files will be recoded correctly + whenever the recoding caching is enabled. + +Using Language Translation +========================== +It is possible to translate titles to your languages using libtranslate. +The LibRCC should be compiled with LibTranslate support (It will be quite good +idea to use patched libtranslated with posibility to limit maximum amount of +time spent for translation) and you should have internet connection. Since +libtranslate utilizes online translation services it takes a lot of time to get +translation. To solve this problem the translation queueing and caching is used. +If translation is failed in considered amount of time error will be returned to +caller and string will be queued for translation. The translated string will be +stored in the DB4 cache and will be returned to caller on the following requests +for translation. -- cgit v1.2.3