diff --git a/resources/metadata-ISO/language_codes_ISO_639.csv b/resources/metadata-ISO/language_codes_ISO_639.csv new file mode 100644 index 000000000000..cbfde1506458 --- /dev/null +++ b/resources/metadata-ISO/language_codes_ISO_639.csv @@ -0,0 +1,185 @@ +alpha2,English +aa,Afar +ab,Abkhazian +ae,Avestan +af,Afrikaans +ak,Akan +am,Amharic +an,Aragonese +ar,Arabic +as,Assamese +av,Avaric +ay,Aymara +az,Azerbaijani +ba,Bashkir +be,Belarusian +bg,Bulgarian +bh,Bihari languages +bi,Bislama +bm,Bambara +bn,Bengali +bo,Tibetan +br,Breton +bs,Bosnian +ca,Catalan; Valencian +ce,Chechen +ch,Chamorro +co,Corsican +cr,Cree +cs,Czech +cu,Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic +cv,Chuvash +cy,Welsh +da,Danish +de,German +dv,Divehi; Dhivehi; Maldivian +dz,Dzongkha +ee,Ewe +el,"Greek, Modern (1453-)" +en,English +eo,Esperanto +es,Spanish; Castilian +et,Estonian +eu,Basque +fa,Persian +ff,Fulah +fi,Finnish +fj,Fijian +fo,Faroese +fr,French +fy,Western Frisian +ga,Irish +gd,Gaelic; Scottish Gaelic +gl,Galician +gn,Guarani +gu,Gujarati +gv,Manx +ha,Hausa +he,Hebrew +hi,Hindi +ho,Hiri Motu +hr,Croatian +ht,Haitian; Haitian Creole +hu,Hungarian +hy,Armenian +hz,Herero +ia,Interlingua (International Auxiliary Language Association) +id,Indonesian +ie,Interlingue; Occidental +ig,Igbo +ii,Sichuan Yi; Nuosu +ik,Inupiaq +io,Ido +is,Icelandic +it,Italian +iu,Inuktitut +ja,Japanese +jv,Javanese +ka,Georgian +kg,Kongo +ki,Kikuyu; Gikuyu +kj,Kuanyama; Kwanyama +kk,Kazakh +kl,Kalaallisut; Greenlandic +km,Central Khmer +kn,Kannada +ko,Korean +kr,Kanuri +ks,Kashmiri +ku,Kurdish +kv,Komi +kw,Cornish +ky,Kirghiz; Kyrgyz +la,Latin +lb,Luxembourgish; Letzeburgesch +lg,Ganda +li,Limburgan; Limburger; Limburgish +ln,Lingala +lo,Lao +lt,Lithuanian +lu,Luba-Katanga +lv,Latvian +mg,Malagasy +mh,Marshallese +mi,Maori +mk,Macedonian +ml,Malayalam +mn,Mongolian +mr,Marathi +ms,Malay +mt,Maltese +my,Burmese +na,Nauru +nb,"Bokmål, Norwegian; Norwegian Bokmål" +nd,"Ndebele, North; North Ndebele" +ne,Nepali +ng,Ndonga +nl,Dutch; Flemish +nn,"Norwegian Nynorsk; Nynorsk, Norwegian" +no,Norwegian +nr,"Ndebele, South; South Ndebele" +nv,Navajo; Navaho +ny,Chichewa; Chewa; Nyanja +oc,Occitan (post 1500); Provençal +oj,Ojibwa +om,Oromo +or,Oriya +os,Ossetian; Ossetic +pa,Panjabi; Punjabi +pi,Pali +pl,Polish +ps,Pushto; Pashto +pt,Portuguese +qu,Quechua +rm,Romansh +rn,Rundi +ro,Romanian; Moldavian; Moldovan +ru,Russian +rw,Kinyarwanda +sa,Sanskrit +sc,Sardinian +sd,Sindhi +se,Northern Sami +sg,Sango +si,Sinhala; Sinhalese +sk,Slovak +sl,Slovenian +sm,Samoan +sn,Shona +so,Somali +sq,Albanian +sr,Serbian +ss,Swati +st,"Sotho, Southern" +su,Sundanese +sv,Swedish +sw,Swahili +ta,Tamil +te,Telugu +tg,Tajik +th,Thai +ti,Tigrinya +tk,Turkmen +tl,Tagalog +tn,Tswana +to,Tonga (Tonga Islands) +tr,Turkish +ts,Tsonga +tt,Tatar +tw,Twi +ty,Tahitian +ug,Uighur; Uyghur +uk,Ukrainian +ur,Urdu +uz,Uzbek +ve,Venda +vi,Vietnamese +vo,Volapük +wa,Walloon +wo,Wolof +xh,Xhosa +yi,Yiddish +yo,Yoruba +za,Zhuang; Chuang +zh,Chinese +zu,Zulu diff --git a/src/gui/qgsmetadatawidget.cpp b/src/gui/qgsmetadatawidget.cpp index 19f2b48667bd..6bb2e9b9c29a 100644 --- a/src/gui/qgsmetadatawidget.cpp +++ b/src/gui/qgsmetadatawidget.cpp @@ -317,7 +317,7 @@ void QgsMetadataWidget::fillComboBox() const comboLanguage->setEditable( true ); comboLanguage->clear(); QMap countries = parseLanguages(); - const QStringList &k = types.keys(); + const QStringList &k = countries.keys(); i = 0; for ( const QString &countryCode : k ) { @@ -544,7 +544,7 @@ QMap QgsMetadataWidget::parseLanguages() QMap countries; countries.insert( QString(), QString() ); // We add an empty line, because it's not compulsory. - QString path = QDir( QgsApplication::metadataPath() ).absoluteFilePath( QStringLiteral( "country_code_ISO_3166.csv" ) ); + QString path = QDir( QgsApplication::metadataPath() ).absoluteFilePath( QStringLiteral( "language_codes_ISO_639.csv" ) ); QFile file( path ); if ( !file.open( QIODevice::ReadOnly ) ) { @@ -558,8 +558,27 @@ QMap QgsMetadataWidget::parseLanguages() { QByteArray line = file.readLine(); QList items = line.split( ',' ); - countries.insert( items.at( 2 ).constData(), items.at( 0 ).constData() ); + countries.insert( QString( items.at( 0 ).constData() ).trimmed(), QString( items.at( 1 ).constData() ).trimmed() ); } + file.close(); + + path = QDir( QgsApplication::metadataPath() ).absoluteFilePath( QStringLiteral( "country_code_ISO_3166.csv" ) ); + QFile secondFile( path ); + if ( !secondFile.open( QIODevice::ReadOnly ) ) + { + QgsDebugMsg( QString( "Error while opening the CSV file: %1, %2 " ).arg( path, file.errorString() ) ); + return countries; + } + + // Skip the first line of the CSV + secondFile.readLine(); + while ( !secondFile.atEnd() ) + { + QByteArray line = secondFile.readLine(); + QList items = line.split( ',' ); + countries.insert( QString( items.at( 2 ).constData() ).trimmed(), QString( items.at( 0 ).constData() ).trimmed() ); + } + secondFile.close(); return countries; } @@ -581,8 +600,9 @@ QStringList QgsMetadataWidget::parseLicenses() while ( !file.atEnd() ) { QByteArray line = file.readLine(); - wordList.append( line.split( ',' ).at( 0 ) ); + wordList.append( line.split( ',' ).at( 0 ).trimmed() ); } + file.close(); return wordList; } @@ -604,8 +624,9 @@ QStringList QgsMetadataWidget::parseLinkTypes() while ( !file.atEnd() ) { QByteArray line = file.readLine(); - wordList.append( line.split( ',' ).at( 0 ) ); + wordList.append( line.split( ',' ).at( 0 ).trimmed() ); } + file.close(); return wordList; } @@ -625,8 +646,9 @@ QStringList QgsMetadataWidget::parseMimeTypes() while ( !file.atEnd() ) { QByteArray line = file.readLine(); - wordList.append( line.split( ',' ).at( 0 ) ); + wordList.append( line.split( ',' ).at( 0 ).trimmed() ); } + file.close(); return wordList; } @@ -649,6 +671,7 @@ QMap QgsMetadataWidget::parseTypes() QList items = line.split( ';' ); types.insert( items.at( 0 ).constData(), items.at( 1 ).constData() ); } + file.close(); return types; }