[Kmymoney-devel] csvimport plugin test is translation dependent

allan aganderson at ukonline.co.uk
Thu Sep 16 19:42:47 CEST 2010


On 16/09/10 18:32, Alvaro Soliverez wrote:
> Comment out the short month test for now.
> 
> Anyway, the test is inherently translation dependent, but it is
> supposed to work ok. That is, until someone screwed up when
> translating to Romanian. :/

The other day, when you suggested a way to change these, I said I had
already made a change,which was identical to your suggestion.  In fact,
it wasn't quite the same, as i had decided to use QDate::shortMonthName
( int month, MonthNameType type ) , ie with type specified, because the
help said that "The month names will be localized according to the
system's locale settings."

QDate::DateFormat	0	This type of name can be used for date-to-string
formatting.
QDate::StandaloneFormat	1	This type is used when you need to enumerate
months or weekdays. Usually standalone names are represented in singular
forms with capitalized first letter.

Would it have helped if I had done that?

Allan

> On Thu, Sep 16, 2010 at 2:25 PM, Cristian Oneþ <onet.cristian at gmail.com> wrote:
>> Hi Allan,
>>
>> Can you please check the test related fix in this commit. If the test
>> can't be written in a translation independent manner then it should be
>> removed.
>>
>> Regards,
>> Cristian
>>
>> SVN commit 1176100 by conet:
>>
>> Fix compilation errors on MSVC due to a rather strange way of using
>> QStringList. I think that the code using QStringList should have been
>> more like the one in this patch. Also I commented out a test case
>> which was failing in Romanian since it was locale dependent (the short
>> month name returned 'nov.' which produced '5-nov.-1999' which can't pe
>> parsed)
>>
>>  M  +13 -13    convdate.cpp
>>  M  +4 -2      csvdatetest.cpp
>>  M  +3 -3      csvprocessing.cpp
>>  M  +4 -4      investprocessing.cpp
>>
>>
>> --- trunk/extragear/office/kmymoney/kmymoney/plugins/csvimport/convdate.cpp
>> #1176099:1176100
>> @@ -44,25 +44,25 @@
>>   QString buffer = txt;
>>   buffer = buffer.replace(rx, QString('/'));//    ....with '/'
>>
>> -  QStringList dateSplit[3] = buffer.split('/');
>> -  if (dateSplit[0].count() != 3) {//                          not a valid date
>> +  QStringList dateSplit = buffer.split('/');
>> +  if (dateSplit.count() != 3) {//                          not a valid date
>>     return QDate();
>>   }
>>   switch (m_dateFormatIndex) {
>>     case(0):    //                                          %y %m %d
>> -      aYear =  dateSplit[0].at(0);
>> -      aMonth = dateSplit[0].at(1);
>> -      aDay =   dateSplit[0].at(2);
>> +      aYear =  dateSplit[0];
>> +      aMonth = dateSplit[1];
>> +      aDay =   dateSplit[2];
>>       break;
>>     case(1):    //                                          %m %d %y
>> -      aMonth = dateSplit[0].at(0);
>> -      aDay =   dateSplit[0].at(1);
>> -      aYear =  dateSplit[0].at(2);
>> +      aMonth = dateSplit[0];
>> +      aDay =   dateSplit[1];
>> +      aYear =  dateSplit[2];
>>       break;
>>     case(2):    //                                          %d %m %y
>> -      aDay =   dateSplit[0].at(0);
>> -      aMonth = dateSplit[0].at(1);
>> -      aYear =  dateSplit[0].at(2);
>> +      aDay =   dateSplit[0];
>> +      aMonth = dateSplit[1];
>> +      aYear =  dateSplit[2];
>>       break;
>>     default:
>>       qDebug("ConvertDate - not a valid date format");
>> @@ -93,8 +93,8 @@
>>     aMonth = '0' + aMonth;
>>     aFormat = "MM";
>>   } else if (aMonth.length() == 2) {//                     assume numeric
>> -    bool datefound = ((aMonth > "0") and(aMonth < "13"));
>> -    if (not datefound) {
>> +    bool datefound = ((aMonth > "0") && (aMonth < "13"));
>> +    if (!datefound) {
>>       return QDate();//                                        not a valid day
>>     }
>>     aFormat = "MM";//                                       aMonth is numeric
>> --- trunk/extragear/office/kmymoney/kmymoney/plugins/csvimport/csvdatetest.cpp
>> #1176099:1176100
>> @@ -68,8 +68,10 @@
>>   QVERIFY(m_convert->convertDate(QString("25-" +
>> QDate::longMonthName(12) + "-2000")) ==
>>   QDate::fromString("25/12/2000", format));//e = "25-December-2000"
>>
>> -  QVERIFY(m_convert->convertDate(QString("5-" +
>> QDate::shortMonthName(11) + "-1999")) ==
>> -  QDate::fromString("5/11/1999", format));//f = "5-Nov-1999"
>> +  // TODO: change or fix this test since it's based on localization
>> which makes it fail depending on the translation
>> +  // See qt-docs: "The month names will be localized according to the
>> system's locale settings."
>> +  //QVERIFY(m_convert->convertDate(QString("5-" +
>> QDate::shortMonthName(11) + "-1999")) ==
>> +  //QDate::fromString("5/11/1999", format));//f = "5-Nov-1999"
>>
>>   QVERIFY(m_convert->convertDate("13.09.81") ==
>>           QDate::fromString("13/09/1981", format));//g = "13.09.81"
>> --- trunk/extragear/office/kmymoney/kmymoney/plugins/csvimport/csvprocessing.cpp
>> #1176099:1176100
>> @@ -334,7 +334,7 @@
>>     }
>>   }
>>
>> -  QStringList listIn[MAXCOL] =
>> m_inBuffer.split(m_fieldDelimiterCharacter);// firstly, split on
>> m_fieldDelim_char
>> +  QStringList listIn = m_inBuffer.split(m_fieldDelimiterCharacter);//
>> firstly, split on m_fieldDelim_char
>>   QStringList listOut;
>>   QString tmp;
>>   tmp.clear();
>> @@ -625,8 +625,8 @@
>>
>>  void CsvProcessing::saveAs()
>>  {
>> -  QStringList outFile[1] = m_inFileName.split('.');
>> -  const KUrl& name = outFile[0].at(0) + ".qif";
>> +  QStringList outFile = m_inFileName.split('.');
>> +  const KUrl& name = (outFile.isEmpty() ? "CsvProcessing" :
>> outFile[0]) + ".qif";
>>
>>   QString outFileName = KFileDialog::getSaveFileName(name, "*.qif |
>> QIF Files", 0, i18n("Save QIF")
>>  #if KDE_IS_VERSION(4,4,0)
>> --- trunk/extragear/office/kmymoney/kmymoney/plugins/csvimport/investprocessing.cpp
>> #1176099:1176100
>> @@ -377,8 +377,8 @@
>>   m_investDlg->m_redefine->m_accountName.clear();
>>   m_brokerageItems = false;
>>   QString name = QDir::homePath();
>> -  QStringList outFile[1] = name.split('.');
>> -  QString outFileName = outFile[0].at(0) + ".qif";
>> +  QStringList outFile = name.split('.');
>> +  QString outFileName = (outFile.isEmpty() ? "InvestProcessing" :
>> outFile[0]) + ".qif";
>>
>>   if (!fname.isEmpty())
>>     m_inFileName  = fname;
>> @@ -865,8 +865,8 @@
>>
>>  void InvestProcessing::saveAs()
>>  {
>> -  QStringList outFile[1] = m_inFileName .split('.');
>> -  const KUrl& name = outFile[0].at(0) + ".qif";
>> +  QStringList outFile = m_inFileName .split('.');
>> +  const KUrl& name = (outFile.isEmpty() ? "InvestProcessing" :
>> outFile[0]) + ".qif";
>>
>>   QString outFileName = KFileDialog::getSaveFileName(name, "*.qif |
>> QIF Files", 0, i18n("Save QIF")
>>  #if KDE_IS_VERSION(4,4,0)
>> _______________________________________________
>> KMyMoney-devel mailing list
>> KMyMoney-devel at kde.org
>> https://mail.kde.org/mailman/listinfo/kmymoney-devel
>>
> _______________________________________________
> KMyMoney-devel mailing list
> KMyMoney-devel at kde.org
> https://mail.kde.org/mailman/listinfo/kmymoney-devel
> 
> 
> !DSPAM:4c92554e116031804284693!
> 



More information about the KMyMoney-devel mailing list