diff --git a/src/translitplugin.cpp b/src/translitplugin.cpp index 466ce07..6f65c85 100644 --- a/src/translitplugin.cpp +++ b/src/translitplugin.cpp @@ -1,227 +1,227 @@ /*************************************************************************** translitplugin.cpp - description ------------------- begin : Sat Oct 13 2007 copyright : (C) 2007 by Dominik Seichter email : domseichter@web.de ***************************************************************************/ /*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************/ #include "translitplugin.h" #include "batchrenamer.h" #include #include #include #include #include /* const QString TranslitPlugin::s_strUtf8[] = {"а","б","в","г","д","е","ё","ж","з","и", "й","к","л","м","н","о","п","р","с","т","у","ф","х","ц","ч","ш","щ","ъ","ы","ь", "э","ю","я", "А","Б","В","Г","Д","Е","Ё","Ж","З","И","Й","К","Л","М","Н","О","П", "Р","С","Т","У","Ф","Х","Ц","Ч","Ш","Щ","Ъ","Ы","Ь","Э","Ю","Я", "á","ä","č","ď","é","ě","í","ľ","ĺ","ň","ó","ô","ö","ő","ř","ŕ","š","ť","ú","ů","ü","ű","ý","ž", "Á","Ä","Č","Ď","É","Ě","Í","Ľ","Ĺ","Ň","Ó","Ô","Ö","Ő","Ř","Ŕ","Š","Ť","Ú","Ů","Ü","Ű","Ý","Ž",QString::null}; */ const QString TranslitPlugin::s_strUtf8[] = { "\xD0\xB0","\xD0\xB1","\xD0\xB2", "\xD0\xB3","\xD0\xB4","\xD0\xB5", "\xD1\x91","\xD0\xB6","\xD0\xB7", "\xD0\xB8","\xD0\xB9","\xD0\xBA", "\xD0\xBB","\xD0\xBC","\xD0\xBD", "\xD0\xBE","\xD0\xBF","\xD1\x80", "\xD1\x81","\xD1\x82","\xD1\x83", "\xD1\x84","\xD1\x85","\xD1\x86", "\xD1\x87","\xD1\x88","\xD1\x89", "\xD1\x8A","\xD1\x8B","\xD1\x8C", "\xD1\x8D","\xD1\x8E","\xD1\x8F", "\xD0\x90","\xD0\x91","\xD0\x92", "\xD0\x93","\xD0\x94","\xD0\x95", "\xD0\x81","\xD0\x96","\xD0\x97", "\xD0\x98","\xD0\x99","\xD0\x9A", "\xD0\x9B","\xD0\x9C","\xD0\x9D", "\xD0\x9E","\xD0\x9F","\xD0\xA0", "\xD0\xA1","\xD0\xA2","\xD0\xA3", "\xD0\xA4","\xD0\xA5","\xD0\xA6", "\xD0\xA7","\xD0\xA8","\xD0\xA9", "\xD0\xAA","\xD0\xAB","\xD0\xAC", "\xD0\xAD","\xD0\xAE","\xD0\xAF", "\xC3\xA1","\xC3\xA4","\xC4\x8D", "\xC4\x8F","\xC3\xA9","\xC4\x9B", "\xC3\xAD","\xC4\xBE","\xC4\xBA", "\xC5\x88","\xC3\xB3","\xC3\xB4", "\xC3\xB6","\xC5\x91","\xC5\x99", "\xC5\x95","\xC5\xA1","\xC5\xA5", "\xC3\xBA","\xC5\xAF","\xC3\xBC", "\xC5\xB1","\xC3\xBD","\xC5\xBE", "\xC3\x81","\xC3\x84","\xC4\x8C", "\xC4\x8E","\xC3\x89","\xC4\x9A", "\xC3\x8D","\xC4\xBD","\xC4\xB9", "\xC5\x87","\xC3\x93","\xC3\x94", "\xC3\x96","\xC5\x90","\xC5\x94", "\xC5\xA0","\xC5\xA4","\xC3\x9A", "\xC5\xAE","\xC3\x9C","\xC5\xB0", - "\xC3\x9D","\xC5\xBD", QString::null}; + "\xC3\x9D","\xC5\xBD", QString()}; const QString TranslitPlugin::s_strEngl[]= {"a","b","v","g","d","e","yo","zh","z","i", "j","k","l","m","n","o","p","r","s","t","u","f","h","c","ch","sh","sh","","y","", "e","yu","ya", "A","B","V","G","D","E","Yo","Zh","Z","I","J","K","L","M","N","O","P", "R","S","T","U","F","H","C","Ch","Sh","Sh","","Y","","E","Yu","Ya", "a","a","c","d","e","e","i","l","l","n","o","o","o","o","r","r","s","t","u","u","u","u","y","z", - "A","A","C","D","E","E","I","L","L","N","O","O","O","O","R","R","S","T","U","U","U","U","Y","Z",QString::null}; + "A","A","C","D","E","E","I","L","L","N","O","O","O","O","R","R","S","T","U","U","U","U","Y","Z",QString()}; QHash TranslitPlugin::s_mapFromUTF8; TranslitPlugin::TranslitPlugin( PluginLoader* loader ) : FilePlugin( loader ) { this->addSupportedToken("transliterated"); this->addSupportedToken("transliterated;.*"); m_help.append( Plugin::createHelpEntry("transliterated", i18n("Inserts the transliterated original filename")) ); m_help.append( Plugin::createHelpEntry("%transliterated", i18n("Inserts the transliterated original filename converted to lower case")) ); m_help.append( Plugin::createHelpEntry("&transliterated", i18n("Inserts the transliterated original filename converted to upper case")) ); m_help.append( Plugin::createHelpEntry("*transliterated", i18n("Inserts the transliterated original filename capitalized")) ); m_help.append( Plugin::createHelpEntry("transliterated;Some string", i18n("Transliterates the string following the semicolon")) ); m_name = i18n("Transliteration"); m_icon = "applications-education-language"; m_comment = i18n("This plugin can transcribe a filename " "into English (i.e. perform transliteration)."); if( TranslitPlugin::s_mapFromUTF8.isEmpty() ) { int i=0; while( ! TranslitPlugin::s_strUtf8[i].isEmpty() ) { TranslitPlugin::s_mapFromUTF8[ TranslitPlugin::s_strUtf8[i] ] = TranslitPlugin::s_strEngl[i]; ++i; } } } TranslitPlugin::~TranslitPlugin() { } QString TranslitPlugin::processFile( BatchRenamer* b, int index, const QString & filenameOrToken, EPluginType eCurrentType ) { QString src; QString token; // This plugin supports to types if( eCurrentType == ePluginType_Token ) { if( filenameOrToken.contains( ";" ) ) { src = filenameOrToken.section( ';', 1, 1 ); token = filenameOrToken.section( ';', 0, 0 ).toLower(); } else token = filenameOrToken.toLower(); if( token == "transliterated" ) { if( src.isEmpty() ) { // TODO: If extension ..... if( true ) src = b->files()->at( index ).srcFilename(); else src = b->files()->at( index ).srcExtension(); } return this->transliterate( src ); } } /* else if( eCurrentType == ePluginType_Filename ) { // TODO: If extension ..... if( true ) src = b->files()->at( index ).srcFilename(); else src = b->files()->at( index ).srcExtension(); return this->transliterate( src ); } */ return QString(); } /* void TranslitPlugin::createUI( QWidget* parent ) const { QSpacerItem* spacer = new QSpacerItem( 20, 20, QSizePolicy::Expanding, QSizePolicy::Expanding ); QVBoxLayout* l = new QVBoxLayout( parent ); QHBoxLayout* hbox = new QHBoxLayout( parent ); QLabel* pix = new QLabel( parent ); pix->setPixmap( KIconLoader::global()->loadIcon( m_icon, K3Icon::Desktop ) ); hbox->addWidget( pix ); hbox->addWidget( new QLabel( ""+name()+"", parent ) ); hbox->addItem( spacer ); l->addLayout( hbox ); l->addWidget( new QLabel( i18n("This plugin will transliterate the following characters."), parent ) ); QListWidget* list = new QListWidget( parent ); int i=0; while( TranslitPlugin::s_strUtf8[i]!=QString::null ) { QString text = QString::fromUtf8( TranslitPlugin::s_strUtf8[i].toUtf8().data() ); text += " -> "; text += TranslitPlugin::s_strEngl[i];; list->insertItem( 0, text ); ++i; } l->addWidget( list ); l->setStretchFactor( list, 2 ); } */ QString TranslitPlugin::transliterate(const QString & unicoded) { int i; QString transed = ""; transed.reserve(unicoded.length()); for(i=0; i<(int)unicoded.length(); i++) { QString charIn = unicoded.mid(i, 1); if( TranslitPlugin::s_mapFromUTF8.contains( charIn.toUtf8() ) ) { QString charTrans = TranslitPlugin::s_mapFromUTF8[charIn.toUtf8()]; transed.append(charTrans); } else transed.append(charIn); } return transed; }